我有一个文本字段,我在其中写下员工的全名。我想检索第一个单词作为名字,最后一个单词作为姓氏,剩下的中间字符串作为中间名。例如。对
ramesh suresh mahesh roshan
名字应为ramesh
,中间名为suresh mahesh
,姓氏为roshan
。
有没有办法用jquery / javascript做到这一点?请帮忙!
答案 0 :(得分:4)
有了这个:
var fullName = "ramesh suresh mahesh roshan",
parts = fullName.split(/\s+/), //Divide by one or more spaces
firstName = parts.shift(), //Extract first word
lastName = parts.pop() || '', //Extract last word
middleName = parts.join(' '); //All the rest
编辑:为姓氏添加|| ''
后备,以防全名只有1个字(嗯,主要针对偏执的审稿人xD)
干杯;)
答案 1 :(得分:1)
以下代码可以帮助您
var temp = 'ramesh suresh mahesh roshan';
var fullname = temp.split(" ");
var firsname='';
var middlename='';
var lastname = '';
firstname=fullname[0];
lastname=fullname[fullname.length-1];
for(var i=1; i < fullname.length-1; i++) {
middlename = middlename +" "+ fullname[i];
}
alert(firstname);
alert(middlename);
alert(lastname);
答案 2 :(得分:0)
这可能会成功
<script>
function getnam(){
var val = $("#txtval").val();
var dssr = val.split(" ");
var len = dssr.length;
alert("First Name:" + dssr[0]);
var mn = "";
if(len>2){
for(var i=1;i<len-1;i++){
mn= mn + " " + dssr[i];
}
}
alert("Middle Name:" + mn);
if(len>1){
alert("Last Name:" + dssr[len-1]);
}
}
</script>
<input type="text" id="txtval"/>
<input type="button" onclick="getnam()" />
答案 3 :(得分:0)
<强> JavaScript String split() function 强>
split()方法用于将字符串拆分为子字符串数组,并返回新数组。
var str = "ramesh suresh mahesh roshan";
var res = str.split(" ");
res的结果将是一个值为:
的数组ramesh,suresh,mahesh,roshan
定义: split()方法用于将字符串拆分为子字符串数组,并返回新数组。
提示:如果使用空字符串(“”)作为分隔符,则在每个字符之间分割字符串。
注意: split()方法不会更改原始字符串。
<强>语法:string.split(separator,limit)
强>
参数值:
回答您的问题:
由于很多人已经给出了如此多的正确答案,我仍然想从我的角度给出一些启示。
基于JavaScript的答案
function fnStringSplitter(fullName,separator){
var mName = ""; //Middle Name
var splittedArr = fullName.split(separator);
for (var i = 1; i <= splittedArr.length - 2; i++) {
mName = mName + " " + splittedArr[i];
}
alert("First Name : " + splittedArr[0]);
alert("Middle Name : " + mName);
alert("Last Name : " + splittedArr[splittedArr.length - 1]);
}
致电功能: fnStringSplitter("ramesh suresh mahesh roshan"," ");
输出 3个包含姓名,中间名和姓氏的提醒。
答案 4 :(得分:-2)
这是一种方法
string.split(" ")
。然后通常,
0
索引 - 表示名字 (last - 1)
索引 - 代表姓氏 iterating the remaining index and
concatenating
。var name = "ramesh suresh mahesh roshan";
var d = name.split(" ")
console.log("first Name : " + d[0]);
console.log("Last Name : " + d.length != 1 ? d[d.length -1] : "");
var mid = "";
for (var i = 1; i <= d.length - 2; i++) {
mid = mid + " " + d[i];
}
console.log("middle name: " +mid);