Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用JavaScript格式化电话字符_Javascript_Html_Arrays_Jsp - Fatal编程技术网

如何使用JavaScript格式化电话字符

如何使用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

我有一个字符串,例如“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.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未定义”,那么如何修复此问题???