2010-08-28 4 views
2

J'ai un formulaire avec un champ de texte complet et je voudrais décomposer la chaîne en un prénom et une chaîne de nom ... Je gère le formulaire en Coldufusion .Division d'un champ de nom complet en prénom et nom

Quel est le moyen le plus fiable pour y parvenir? Je suppose que JavaScript n'est pas une option car, en son absence, le formulaire générerait une erreur. Tout exemple serait génial.

Merci

+2

Pour des exemples du type d'entrée, vous devez être prêt à gérer, voir http : //semaphorecorp.com/nc/namechop.html –

+0

Oui ... quelle que soit la solution choisie pour ce problème, sachez qu'elle repose sur une fausse prémisse, à savoir que vous pouvez identifier avec précision le prénom et le nom tous les cas. L'utilisation de split() ou de listFirst()/listRest est un point de départ solide, mais vous devrez nettoyer les cas où le fractionnement n'était pas précis. (Ceci est une excellente raison de concevoir un formulaire avec des champs séparés pour les prénoms et les noms, ou les champs de noms que vous souhaitez collecter.L'utilisateur divisera invariablement son nom mieux que vous pourriez.) –

Répondre

10

trouvé une meilleure solution

<cfset fullName = "foo bar"> 
<cfset firstName = listFirst(fullName, " ")> 
<cfset lastName = listRest(fullName, " ")> 
+0

Voilà comment je le ferais. – ale

0

En coldfusion, après sa présentation, je le diviser sur un espace.

+0

Connaissez-vous la fonction pour faire une chose pareille, Jippen? – Mohamad

1

Si vous voulez juste diviser sur le premier espace, vous pouvez utiliser les fonctions de liste. Par exemple, vous pourriez obtenir le premier mot en utilisant

<cfset first = listfirst(fullname, " ")> 

Liste des fonctions prennent toutes un paramètre optionnel, délimiteurs, qui vous permet de spécifier la manière dont la liste est limitée. Donc, dans ce cas, votre liste est délimitée par des espaces. Rappelez-vous que tous les noms ne sont pas deux mots. Les gens utilisent des prénoms, des constructions comme "De Marco" et "Van DeGraff" et ainsi de suite, ou plusieurs prénoms comme "Lisa Ann". Mais cela vous donnera une bonne approximation.

+0

Ben, est-il possible de puis de le soustraire de fullName ... pour finir avec le premier mot comme prénom et le reste de la phrase comme lastName? – Mohamad

+1

Pensez que j'ai les arguments dans le bon ordre ... remplacez le prénom trouvé par fullname par rien et ensuite par couper pour supprimer l'espace principal . – Antony

0

Vous pouvez utiliser GetToken (fullname, 1) et getToken (fullName, 2)