我有一个字符串,例如"123456789“。我希望这个字符串替换为下面的"XXX-XX-6789“。
我已经实现了"123-45-6789“使用普通的javascript使用下面的代码
function mask(str, textbox, loc, delim) {
var value = document.getElementById("num").value;
var locs = loc.split(',');
for (var i = 0; i <= locs.length; i++) {
for (var k = 0; k <= str.length; k++) {
if (k == locs[i]) {
if (str.substring(k, k + 1) != delim) {
str = str.substring(0, k) + delim + str.substring(k, str.length)
}
}
}
}
textbox.value = str
}
但是我无法获得所需的格式,如"XXX-XX-6789“。所以有没有人能提出解决这个问题的办法,并帮助我。
我没有使用jQuery,我想在普通的JS中使用。
发布于 2015-08-07 10:39:53
试试这个JavaScript内置的正则表达式解决方案。它比你有的任何算法都快得多,兄弟
var stringSample = "234443444";
stringSample.replace(/(\d{3})(\d{2})(\d{4})/, '$1-$2-$3')
stringSample.replace(/(\d{3})(\d{2})(\d{4})/, 'XXX-XX-$3')
发布于 2015-08-07 11:13:02
正如您已经说过的,您现在要实现这个123-45-6789
,然后只需在从js函数获得的字符串后面使用下面的指令
将返回js字符串存储在str中,并在下面使用它来获取字符串。
var str = '123-45-6789';
var temp = 'XXX-XX-'+str.split('-')[2];
https://stackoverflow.com/questions/31875715
复制相似问题