Как разделить строку с помощью JavaScript - Отделить имя и фамилию из текстового поля - PullRequest
0 голосов
/ 09 мая 2011

Я использую следующий код, чтобы отделить фамилию от имени + отчества и поместить их в три отдельных поля. Один держит фамилию, один держит имена, а другой - все имена, но переставляется как фамилия, имя (имена)

function switchName(ele){
        var splitName = ele.value.split(" ");
        var surname = splitName[splitName.length-1]; //The last one
        var firstnames 
        for (var i=0; i < splitName.length-1; i++){
                firstnames += splitName[i] + " "
                }

    document.getElementById("hdnSNFNS").value = surname + ", " + firstnames;
    document.getElementById("hdnEmployeeSurname").value = surname;
    document.getElementById("hdnEmployeeFirst").value = firstnames;

Это работает как есть, но я получаю этот вывод для имен

Камень, неопределенный Джосс Хелен

Я играл с ним целую вечность, но не могу наткнуться на правильное решение.

Ответы [ 2 ]

2 голосов
/ 09 мая 2011

Вам не хватает ; в строке 4-й строки, и вы должны инициализировать firstnames пустой строкой.

var firstnames = "";.

Прямо сейчас, первая итерация вашего цикла объединяет имя в неинициализированную переменную, и отсюда и undefined. При инициализации вы будете объединять «ничего», и это даст ожидаемый результат.

1 голос
/ 09 мая 2011
function switchName(ele){
    var splitName = ele.value.split(" ");
    var surname = splitName[splitName.length-1]; //The last one
    var firstnames = ""; // <- forgot to initialize to an empty string
    for (var i=0; i < splitName.length-1; i++){
        firstnames += splitName[i] + " "
    }
}
...