У меня есть текстовое поле, в котором я пишу полное имя сотрудника. Я хочу получить первое слово как имя, последнее слово как фамилию, а оставшуюся среднюю строку - как среднее имя. Напр. для
ramesh suresh mahesh roshan
первое имя должно быть ramesh
, среднее имя как suresh mahesh
и фамилия как roshan
.
Есть ли способ сделать это, используя jquery/javascript? Пожалуйста помоги!
Вот подход
string.split(" ")
.Затем, как правило,
0
й индекс - представляет собой имя(last - 1)
th index - представляет фамилию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);
С этим:
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)
Приветствия;)
Ниже код поможет вам
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);
Функция 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)
Значения параметров:
Ответьте на свой вопрос:
Поскольку многие люди уже давали так много правильного ответа, я все же хотел дать некоторый свет от моего конца.
Ответ на 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 предупреждения с первой, средней и фамилией.
Это может сделать трюк
<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()" />
var x=x.split(" ");var a=x1[0]; var b=x[1];var c=x[2];var d=x[3];
так а = рамеш, б = суреш ... д = рошан