2011-05-09 58 views
0

我使用以下代碼將姓氏從第一個+中間名稱中分離出來,並將它們放在三個獨立的字段中。一位持有姓,一個持有firstnames和一個擁有所有的人,但重新安排爲姓,名(S)如何使用javascript分隔字符串 - 從文本框中分離名字和姓氏

function switchName(ele){ 
     var splitName = ele.value.split(" "); 
     var surname = splitName[splitName.length-1]; //The last one 
     var firstnames 
     for (var i=0; i < splitName.length-1; i++){ 
       firstnames += splitName[i] + " " 
       } 

    document.getElementById("hdnSNFNS").value = surname + ", " + firstnames; 
    document.getElementById("hdnEmployeeSurname").value = surname; 
    document.getElementById("hdnEmployeeFirst").value = firstnames; 

它的工作原理就是,但我得到這個輸出爲firstnames

石,undefinedJoss海倫

我與它玩耍了好久,但跨越正確的解決方案不能絆倒。

+4

這種區別可能並不總是奏效 - 並非所有的文化都使用這種形式。即使像約翰馮諾依曼這樣簡單的例子也可能會讓你感到沮喪。 – McDowell 2011-05-09 11:42:00

回答

1
function switchName(ele){ 
    var splitName = ele.value.split(" "); 
    var surname = splitName[splitName.length-1]; //The last one 
    var firstnames = ""; // <- forgot to initialize to an empty string 
    for (var i=0; i < splitName.length-1; i++){ 
     firstnames += splitName[i] + " " 
    } 
} 
+0

謝謝雷諾斯,我是一個新手,但推測這將是一件簡單的事。 – 2011-05-09 11:44:35

2

你錯過了4號線線;,你應該初始化firstnames爲空字符串。

var firstnames = "";

現在,您的循環的第一次迭代將名字連接到未初始化的變量,這就是undefined的來源。通過初始化,您將與「無」連接,併產生預期的結果。

+0

感謝您的解釋 - 幫助理解 – 2011-05-09 11:46:12

相關問題