2012/03/13

[JavaScript] 以固定長度的方式為字串加入分隔符號

例: 以 CD-Key 的格式而言, 大致像 12345-67890-ABCDE-FGHIJ
但有時會為了方便使用者輸入, 會允許使用者輸入無分隔符號的字串, 此時就會想要簡單地依長度來分割字串, 並加入分隔符號.


以下的sample會將 1234567890ABCDEFGHIJ 轉換為 12345-67890-ABCDE-FGHIJ
var s = "1234567890ABCDEFGHIJ";
alert(s.match(/.{5}/g).join('-'));
但如果是 1234567890ABCDEFGHIJKLM (多了KLM), 就還是會維持原來的結果.
因為最後的 KLM 長度並未為 5, 所以被略過.
若要讓 1234567890ABCDEFGHIJKLM 能被轉成 12345-67890-ABCDE-FGHIJ-KLM, 請改以下的用法:
var s = "1234567890ABCDEFGHIJKLM";
alert(s.match(/.{1,5}/g).join('-'));
只要簡單地將 {5}, 改成 {1,5} 就可以了.

沒有留言: