Разбиение строки на 3 подстроки jquery / javascript

0

У меня есть текстовое поле, в котором я пишу полное имя сотрудника. Я хочу получить первое слово как имя, последнее слово как фамилию, а оставшуюся среднюю строку - как среднее имя. Напр. для

ramesh suresh mahesh roshan

первое имя должно быть ramesh, среднее имя как suresh mahesh и фамилия как roshan.

Есть ли способ сделать это, используя jquery/javascript? Пожалуйста помоги!

  • 0
    каково правило делить
  • 0
    Предположим, что вы храните значение вашей базы данных в var x (массив), вы можете разделить с помощью var x=x.split(" ");var a=x1[0]; var b=x[1];var c=x[2];var d=x[3]; так а = рамеш, б = суреш ... д = рошан
Показать ещё 5 комментариев
Теги:

5 ответов

-2
Лучший ответ

Вот подход

  1. Разделите строку на основе пространства, используя string.split(" ").

Затем, как правило,

  1. 0 й индекс - представляет собой имя
  2. (last - 1) th index - представляет фамилию
  3. Поэтому для среднего имени я 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);

JSFiddle

  • 1
    Это немного хрупко, потому что оно сломается, если есть только имя и фамилия или даже просто имя.
  • 0
    @ Питер это можно преодолеть, добавив условный jsfiddle.net/fFPkx/3
Показать ещё 4 комментария
3

С этим:

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

EDIT: добавлено || '' || '' fallback для lastName, если полное имя имеет только 1 слово (ну, в основном для параноических обозревателей xD)

Приветствия;)

  • 0
    просто чтобы вы знали, что вам нужно включить условное выражение в фамилию, иначе это не удастся для "ramesh" jsfiddle.net/fFPkx/5
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/

0

Функция JavaScript String split()

Метод 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 предупреждения с первой, средней и фамилией.

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()" />

Ещё вопросы

Сообщество Overcoder
Наверх
Меню