将字符串拆分为3个子串jquery / javascript

时间:2014-01-10 04:39:23

标签: javascript jquery

我有一个文本字段,我在其中写下员工的全名。我想检索第一个单词作为名字,最后一个单词作为姓氏,剩下的中间字符串作为中间名。例如。对

ramesh suresh mahesh roshan

名字应为ramesh,中间名为suresh mahesh,姓氏为roshan

有没有办法用jquery / javascript做到这一点?请帮忙!

5 个答案:

答案 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);

http://jsfiddle.net/c9h74/

答案 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)

参数值:

  • 分隔符 - 可选。指定用于拆分字符串的字符或正则表达式。如果省略,将返回整个字符串(只包含一个项目的数组)。
  • 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)

这是一种方法

  1. 使用 string.split(" ")
  2. 根据空间拆分字符串

    然后通常,

    1. 0索引 - 表示名字
    2. (last - 1)索引 - 代表姓氏
    3. 所以对于中间名我彼此iterating the remaining index and concatenating

    4. 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);
      

      JSFiddle