2014-10-07 2 views
0

jquery를 사용하는 사람의 이름을 기반으로 사용자 이름을 만들고 싶습니다.동적으로 사용자 이름을 만듭니다.

나는 어떻게 시작해야할지 모르겠다. 나는 이름을 나누고, 각 부분의 첫 글자를 얻고, 성으로 연결하려고 생각했다. 그러나 이름이 많은 단어를 가지고 있다면 어떻게해야할지 모르겠다.

예를 들어 내 이름

'First' -> username 'peter' 
'First Second' -> username 'fsecond' 
'First Second Third' -> username 'fsthird' 

코드

(만 할 첫 번째 경우, 그러나 많은 중간 이름이 있다면? 무엇을)

function createUsername(fullName) { 

    var piece; 
    var size; 

    piece = fullName.split(' '); 
    size = piece.length; 
    if(size == 1) 
    $("#userName").val(piece[0]); 
} 


<input type='text' onKeyUp = 'createUsername(this.value)'/> 
<input type='text' name='userName' id='userName' /> 

답변

2

당신은 업데이트이

function createUsername(name) { 
    return name.split(" ").map(function(v, i, a) { 
     return i !== (a.length - 1) ? v[0] : v; 
    }).join().toLowerCase(); 
} 
+0

딱! 고맙습니다! – gbvisconti

+0

환영합니다. 다행스럽게 도와주었습니다 :) –

1

당신은 당신의 분할 배열의 성을 취할 수 다음과 같이 반복합니다 :

function createUsername(fullName) { 

    var piece; 
    var size; 

    piece = fullName.split(' '); 
    size = piece.length; 
    var name = piece[size-1].toLowerCase(); 
    for (var i = size -2; i > 0; i--) { 
     name = piece[i][0].toLowerCase() + name; 
    } 
    $("#userName").val(name); 
} 
1

오른쪽 트랙에있는 문자열을 사용자의 ' 그 다음에는 성 앞에있는 모든 이름의 첫 글자를 얻기 위해 반복해야합니다.

function createUsername(fullName) { 

    var piece, 
     username = []; 

    piece = fullName.split(' '); 

    if (piece.length > 1) { 
    for (var i = 0; i < piece.length; i++) { 
     if (i < piece.length - 1) { 
     username.push(piece[i].charAt(0)); 
     } else { 
     username.push(piece[i]); 
     } 
    } 
    } else { 
    username.push(piece[0]); 
    } 

    $("#userName").val(username.join("")); 
} 

Here's a CodePen example

1

편집처럼 그것을 할 수 있습니다; 네 개 이상의 단어를 포함하는 이름의 추가 처리

시도 (V2)

function createUserName(fullName) { 
    var s = fullName.toLowerCase().match(/[a-z]+/g) 
    , l = s.length, _s = "", y = -1; 
     do { _s += s[++y][0] } while (_s.length < l -1); 
      return l > 1 ? _s + s[l -1] : fullName; 
    }; 

jsfiddle http://jsfiddle.net/guest271314/yfyogoqd/

+0

3 단어로 된 이름에는 작동하지만 4 개 이상의 이름으로 된 경우에는 어떻게됩니까? Amit Joki의 답변이 제대로 작동했습니다. 어쨌든 도와 줘서 고마워! – gbvisconti

+0

업데이트 된 게시물보기. 4 개 이상의 단어를 포함한 이름 처리를위한 조각 추가. 할 수 있으면 행복하게 도와 줘서 고마워. 고마워. – guest271314

관련 문제