2011-05-09 3 views
0

다음 코드를 사용하여 성을 첫 번째 + 중간 이름에서 분리하여 세 개의 별도 필드에 넣습니다. 하나 하나가 firstnames을 보유하고 하나가 모두 있지만, 성, 이름 (들)자바 스크립트로 문자열을 분할하는 방법 - 이름과 성을 텍스트 상자에서 분리하십시오.

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; 

그것은 그대로 작품으로 배열 된 재를 보유하지만 난 firstnames이 출력을 얻을, 성을 보유하고

스톤, 정의되지 않은 Joss Helen

나는 여러 해 동안 놀았지만 올바른 해결책을 찾지 못했습니다.

+4

이러한 구분은 항상 작동하지 않을 수도 있습니다. 모든 문화권에서 그러한 양식을 사용하는 것은 아닙니다. _John von Neumann_과 같은 단순한 경우조차도 당신을 빠져 나갈 수 있습니다. – McDowell

답변

1
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] + " " 
    } 
} 
+0

감사합니다. Raynos, 초보자는 좀 있지만 간단하다고 생각합니다. –

2

당신은 4 선 라인에 ;을 놓치고 당신은 빈 문자열로 firstnames를 초기화해야한다.

var firstnames = "";.

지금 루프의 첫 번째 반복은 첫 번째 이름을 초기화되지 않은 변수로 연결하며 그 위치는 undefined입니다. 초기화를 수행하면 "아무것도"연결되지 않고 예상 한 결과가 생성됩니다.

+0

설명에 감사드립니다. 이해하는 데 도움이됩니다. –

관련 문제