Конкатенировать все следущие элементы

178
21 июля 2018, 13:20

Имеется input, который должен разделить имя и фамилию. Для этого я использую метод split. Иногда, у человека может быть двойное имя(как и фамилия, но в рамках задачи нужно только имя) и он может ввести это имя в форму через пробелы(например, Пупкин Вася Сергей). Как сделать так, что бы все остальные следующие элементы конкатенировались в имя?

const input = document.getElementById('input') 
 
input.oninput = () => { 
 
  const [firstName, lastName] = input.value.split(' ') 
  console.log(firstName, lastName) 
}
<input id="input" />

Answer 1

Собираем остальные кусочки в один массив и объединяем его обратно в строку по пробелу:

const input = document.getElementById('input'); 
const result = document.getElementById('result'); 
 
input.oninput = () => { 
  let [firstName, ...lastName] = input.value.split(' '); 
  lastName = lastName ? lastName.join(' ').trim() : ''; 
   
  result.innerHTML = `Имя: "${firstName}", фамилия: "${lastName}"`; 
}
<input id="input" /><br /> 
<span id='result'></span>

READ ALSO
Смена background с помощью js

Смена background с помощью js

Подскажите пожалуйста новичку как правильно решить задачкуЕсть inputs при нажатии на которые мы получаем value 'red,blue

194
Как использовать (запускать) class в цикле

Как использовать (запускать) class в цикле

Внесу некоторые изменения в вопрос, опишу поподробнее

183
Как завершить выполнение скрипта на jquery?

Как завершить выполнение скрипта на jquery?

В модальном окне с 2 input формами подключен ajax запрос на перехват нажатия кнопки отправки и пост запросом передает данные в бдПроблема в том...

209
Перебор свойств обьекта и мутация [дубликат]

Перебор свойств обьекта и мутация [дубликат]

На данный вопрос уже ответили:

150