如何使用 javascript 拆分字符串 - 将名字和姓氏与文本框分开

Posted

技术标签:

【中文标题】如何使用 javascript 拆分字符串 - 将名字和姓氏与文本框分开【英文标题】:how to split a string with javascript - Separate first name and surname from textbox 【发布时间】:2011-05-09 11:31:56 【问题描述】:

我正在使用以下代码将姓氏与名字+中间名分开,并将它们放在三个单独的字段中。一个包含姓氏,一个包含名字,一个包含所有名字,但重新排列为姓氏,名字

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;

它按原样工作,但我得到这个名字的输出

石头,未定义乔斯·海伦

我已经玩了很长时间,但无法找到正确的解决方案。

【问题讨论】:

这种区别可能并不总是有效 - 并非所有文化都使用这种形式。即使是像 John von Neumann 这样的简单案例也可能会让您感到困惑。 【参考方案1】:

您在第 4 行缺少 ;,您应该将 firstnames 初始化为空字符串。

var firstnames = "";.

现在,循环的第一次迭代将名字连接到一个未初始化的变量,这就是 undefined 的来源。通过初始化,您将连接“nothing”,它将产生预期的结果。

【讨论】:

【参考方案2】:
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] + " "
    

【讨论】:

谢谢 Raynos,我是个新手,但我认为这很简单。

以上是关于如何使用 javascript 拆分字符串 - 将名字和姓氏与文本框分开的主要内容,如果未能解决你的问题,请参考以下文章

使用javascript将json数据集值拆分为数据表

如何在javascript中的两个分隔符之间拆分字符串?

在javascript中拆分字符串以获取数据[重复]

如何使用 JavaScript 拆分 html 字符串 [重复]

如何仅用JavaScript中的字母拆分字符串[关闭]

Javascript如何拆分()多个字符串或值? [关闭]