我有一个带有全名文本字段的表单,我想将字符串拆分成姓氏和名字......我在Coldufusion中处理表单。将姓名字段拆分成姓氏和名字
什么是最可靠的方法来实现这一目标?我假设JavaScript不是一种选择,因为如果不存在,表单会产生错误。任何例子都会很棒。
感谢
我有一个带有全名文本字段的表单,我想将字符串拆分成姓氏和名字......我在Coldufusion中处理表单。将姓名字段拆分成姓氏和名字
什么是最可靠的方法来实现这一目标?我假设JavaScript不是一种选择,因为如果不存在,表单会产生错误。任何例子都会很棒。
感谢
找到一个更好的解决方案
<cfset fullName = "foo bar">
<cfset firstName = listFirst(fullName, " ")>
<cfset lastName = listRest(fullName, " ")>
我就是这么做的。 – ale 2010-08-29 13:59:40
如果您只是想分割第一个空间,您可以使用列表功能。例如,您可以通过使用
<cfset first = listfirst(fullname, " ")>
列表功能都需要一个可选参数,分隔符,它可以让你指定的列表被分隔方式获得的第一个字。所以,在这种情况下,你的列表是以空格分隔的。
请记住,并非所有名称都是两个单词。人们使用中间名,像“De Marco”和“Van DeGraff”等构造,或者像“Lisa Ann”这样的多个名字。但这会给你一个很好的近似值。
您可以使用为gettoken(全名,1),并为gettoken(全名,2)
对于你应该准备来处理这类输入的示例,请参阅http ://semaphorecorp.com/nc/namechop.html – 2010-08-28 05:02:55
是的......无论您为这个问题选择何种解决方案,您都应该意识到它依赖于一个错误的前提,也就是说您可以准确地识别第一个和最后一个名称所有情况。使用split()或listFirst()/ listRest是一个坚实的起点,但您需要清理分割不准确的情况。 (这是一个很好的理由来设计一个单独的字段为名字或姓氏,或任何你想收集的名称字段的表单,用户将不可避免地分裂他或她的名字比你可以。) – 2011-01-24 18:47:57