如何使用 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 拆分字符串 - 将名字和姓氏与文本框分开的主要内容,如果未能解决你的问题,请参考以下文章