我有一個帶有全名文本字段的表單,我想將字符串拆分成姓氏和名字......我在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