#javascript #reactjs #react-native #ecmascript-6
#javascript #reactjs #react-native #ecmascript-6
Вопрос:
Вот мой код, я пытаюсь разбить одно полное имя на две части FirstName и LastName .Но это не то, что мне нужно.
Like if fullName='Sachin Ramesh Tendulkar' . then
firstName = Sachin Ramesn
lastName = Tendulkar if
fullName='Sachin Tendulkar' . then
firstName = Sachin
lastname = Tendulkar
if fullName='Sachin Ramesh Tendulkar Second' . then
firstName =Sachin Ramesh Tendulkar
lastName= Second
this.state={
fullName:'Sachin Ramesh Tendulkar'
let fullName = this.state.fullName.split(' ');
const firstName = fullName.shift()
const lastName = fullName.join(' ')
--------------------------------------------
firstName = Sachin
lastName = Ramesh Tendulkar .
but I have to show the result like below ..
------------------------------
firstName = Sachin Ramesh
lastName = Tendulkar
Пожалуйста, предложите . Спасибо
Ответ №1:
Вы можете сделать это таким образом:-
[fName, mName, lName] = nameString.split(" ");
if(!lName) lName = mName
else fName = fName mName
Итак, если last name равно null или не определено, мы присваиваем last name значение среднего имени.
В противном случае имя будет равно имени отчеству.
Ответ №2:
shift
удалит первый элемент. Я думаю, что вы хотите pop
получить последний элемент, чтобы изолировать последнее имя. Обратите внимание, что это прямые мутации
var fullName = "Sachin Ramesh Tendulkar Second".split(' ');
var lastName = fullName.pop();
var firstName = fullName.join(' ');
console.log(`firstName: `, firstName);
console.log(`lastName: `, lastName);
Ответ №3:
Как насчет этого?
const name = "Sachin Ramesh Tendulkar"
const lstSpc = name.lastIndexOf(" ")
const nameParts = [name.substring(0, lstSpc), name.substring(lstSpc)]
console.log(nameParts)
Ответ №4:
Попробуйте это.
name = 'ABC XYZ GHI';
array = name.split(' ');
lastName = array.pop()
firstName = array.join(' ')
Ответ №5:
var fullName = "Sachin Ramesh Tendulkar Second";
var firstName = fullName.substring(0, fullName .lastIndexOf(" ") 1);
var lastName = fullName.substring(fullName .lastIndexOf(" ") 1);
console.log(`firstName: `, firstName);
console.log(`lastName: `, lastName);
Комментарии:
1. FullName.substring не является ошибкой функции, которая появляется в react native
2. Полное имя не является строкой?
Ответ №6:
Вы можете использовать это регулярное /(.*)s([a-zA-Z] )$/
выражение и вызвать exec
метод по этому шаблону, чтобы получить всю группу захвата
const regEx = /(.*)s([a-zA-Z] )$/;
const matches = regEx.exec("Sachin Ramesh Tendulkar Second");
const firstname = matches[1];
const lastname = matches[2];
console.log(firstname);
console.log(lastname);
Вы можете видеть, что регулярное выражение применяется ко всем типам комбинаций имен в regex101 https://regex101.com/r/M53cmm/1
Ответ №7:
const name = 'Sachin Ramesh Tendulkar Second'
const array = name.split(' ');
const firstName = array[0];
const midalName = array[1]
const lastName = array[2]
const newFirstNAme = firstName ' ' midalName
console.log(newFirstNAme)
console.log(lastName)
Ответ №8:
проверено и протестировано
const name = "Sachin Ramesh Tendulkar"
const array = name.split(' ')
let firstname = ''
let lastname = ''
if (array.length amp;amp; array.length > 1) {
array.forEach((item, i) => {
if ((array.length - 1) !== i) {
if (firstname) {
firstname = firstname " " item
} else {
firstname = item
}
}
})
lastname = array[array.length - 1]
}
if (array.length === 1) {
firsname = array[0]
}