2015-08-25 57 views
1

我會如何在這裏區分不同的數字,如XXX-XXX-XXXX?輸入掩碼數字組的分割長度

String.prototype.toCardFormat = function() { 
    return this.replace(/[^0-9]/g, "").substr(0, 16).split("").reduce(cardFormat, ""); 
    function cardFormat(str, l, i) { 
     return str + ((!i || (i % 4)) ? "" : "-") + l; 
    } 
}; 

jsfiddle

回答

1

這裏是鏈接到更新fiddle。給你的功能添加一個OR條件。

function cardFormat(str, l, i) { 
    return str + ((!i || (i % 3) || i > 8) ? "" : "-") + l; 
} 
+1

這起作用。謝謝。 – bunnycode

0

你會改變下其中-附加的條件。以上,每4個字符。在這裏,這是第3和第6後:

String.prototype.toCardFormat = function() { 
 
    return this. 
 
    replace(/[^0-9]/g, ""). 
 
    substr(0, 16). 
 
    split(""). 
 
    reduce(cardFormat, ""); 
 

 
    function cardFormat(str, l, i) { 
 
    return str + 
 
      (((i == 3) || (i == 6)) ? "-" : "") + 
 
      l; 
 
    } 
 
}; 
 

 
var st = "1234567890"; 
 

 
console.log(st.toCardFormat());

+0

由於某種原因,這並不適用於我,但感謝您的解釋。 – bunnycode

+0

有趣。我把它插入[你的jsFiddle](http://jsfiddle.net/y60btLha/1/),它似乎工作正常。 –

+0

我再次嘗試過,它很有用,很抱歉。你的答案有效。感謝您的幫助。 – bunnycode