2014-10-07 75 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 2014-10-07 16:25:13

+0

歡迎。很高興幫助你:) – 2014-10-07 16:25:43

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; 
    }; 

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

+0

它適用於有3個單詞的名字,但如果名字有四個或更多? Amit Joki的回答正常。無論如何感謝您的幫助! – gbvisconti 2014-10-08 11:59:10

+0

查看更新後的帖子。增加了用於處理包括四個或更多單詞的名稱的片段。高興地幫助,如果能夠:)謝謝 – guest271314 2014-10-08 18:45:09