Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.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_Jquery - Fatal编程技术网

Javascript 在文本区屏蔽电话号码

Javascript 在文本区屏蔽电话号码,javascript,jquery,Javascript,Jquery,我正在编写一个脚本,该脚本在键入主题行时将所有电话/10位数字屏蔽为##########主题行有电话号码以外的文本。 $("#subject").on('keyup', function phoneNumberC() { var phoneNumberRegex = /\d{10}/g; var questionText = document.getElementById('subject').value; var phoneNumberDetec

我正在编写一个脚本,该脚本在键入主题行时将所有电话/10位数字屏蔽为
##########
主题行有电话号码以外的文本。

$("#subject").on('keyup', function phoneNumberC() {
        var phoneNumberRegex = /\d{10}/g;
        var questionText = document.getElementById('subject').value;
        var phoneNumberDetected = questionText.match(phoneNumberRegex);

            if (phoneNumberDetected != null){
                formattedPhone = questionText.replace(phoneNumberDetected, "###-###-####");
            }
});
它不起作用了。我做错了什么?

函数格式PhoneNumber(数字){
变量x=0,组=[],len,num;
/*强制字符串转换*/
num=数字+“”;
/*删除非数字字符*/
num=num.replace(/\D/g');
如果(num.length!==10){
抛出新错误('传递的参数需要包含10位数字')
回来
}
len=num.length;
num=num.split(“”).reverse();
而(x3){
groups[2]=groups[2].concat(groups.splice(3-groups.length,1));
}   
返回组。加入('-');
}

console.log(formatUSPhoneNumber(“05455555”))
这里有一个指向它的代码笔的链接:

这不起作用,因为您的
questionText
变量是超出主题值的字符串。您需要执行
替换
,然后将
问题文本
的值分配给id为“subject”的
输入

以下是工作代码:

 $("#subject").on('keyup', function phoneNumberC() {
    var phoneNumberRegex = /\d{10}/g;
    var questionText = document.getElementById('subject').value;
    var phoneNumberDetected = questionText.match(phoneNumberRegex);
    if (phoneNumberDetected != null) {
      phoneNumberDetected = String(phoneNumberDetected);
      var formattedPhone = "###-###-####";
      var formattedSubject = questionText.replace(phoneNumberDetected, formattedPhone);
      $("#subject").val(formattedSubject);
    }
  });

这超出了我的需要,我想在一个文本区域中键入除电话号码本身以外的其他文本时屏蔽电话号码。否决投票,因为OP要求屏蔽电话号码,而不是转换电话号码。先读后写;)另外,
document.getElementById('subject')。value可以缩短为
$(“#subject”)
。。。甚至。。。您可以在函数调用中指定
this
,然后引用
this.value
非常感谢!!这很有效。是的,我总是因为没有使用
this.value
而感到内疚,但我在以后润色代码时会这样做。