【问题标题】:how to split a string with javascript - Separate first name and surname from textbox如何使用 javascript 拆分字符串 - 将名字和姓氏与文本框分开
【发布时间】: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 这样的简单案例也可能会让您感到困惑。

标签: javascript string function split


【解决方案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,我是个新手,但我认为这很简单。
    猜你喜欢
    • 2012-09-02
    • 2016-11-11
    • 1970-01-01
    • 2020-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-01
    • 2015-12-21
    相关资源
    最近更新 更多