2011-05-09 51 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

相关问题