如何使用JavaScript格式化电话字符
我有一个字符串,例如“123456789”。我想用下面的“XXX-XX-6789”替换这个字符串 我使用下面的代码使用普通javascript实现了“123-45-6789”如何使用JavaScript格式化电话字符,javascript,html,arrays,jsp,Javascript,Html,Arrays,Jsp,我有一个字符串,例如“123456789”。我想用下面的“XXX-XX-6789”替换这个字符串 我使用下面的代码使用普通javascript实现了“123-45-6789” function mask(str, textbox, loc, delim) { var value = document.getElementById("num").value; var locs = loc.split(','); for (var i = 0; i <= locs.l
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
}
函数掩码(str、textbox、loc、delim){
var值=document.getElementById(“num”).value;
变量locs=位置拆分(',');
对于(var i=0;i请尝试这个内置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')
正如您已经说过的,您实现了这个123-45-6789
现在您想要XXX-XX-6789
然后在您从js函数获得的字符串之后使用下面的指令
将返回的js字符串存储在str中,并使用下面的命令获取字符串
var str = '123-45-6789';
var temp = 'XXX-XX-'+str.split('-')[2];
字符串的长度是否始终为acontant@Arun检查我的答案都德检查这篇文章你没有读过吗我使用下面的代码使用普通javascript实现了“123-45-6789”。但是我无法获得所需的格式为“XXX-XX-6789”
@Tushar,请检查我的答案;)@AllanChua但这只适用于精确的9位数。我也尝试过这个,但当它是6位数或其他任何数字或更多时我想要这个。所以我想制作数组并执行它,但我不能在循环中实现它,因为替换不起作用。这在这里起作用,但感谢一件事,当我将str减少到4位数时,它显示“XXX XX未定义”不建议使用哪种方法?将str减少到4位意味着?????你能再详细说明一下,以便我们可以修复ITI吗?如果我有var str='123-4',此时我得到的输出为“XXX XX未定义”,那么如何修复此问题???