Javascript 在文本区屏蔽电话号码
我正在编写一个脚本,该脚本在键入主题行时将所有电话/10位数字屏蔽为Javascript 在文本区屏蔽电话号码,javascript,jquery,Javascript,Jquery,我正在编写一个脚本,该脚本在键入主题行时将所有电话/10位数字屏蔽为##########主题行有电话号码以外的文本。 $("#subject").on('keyup', function phoneNumberC() { var phoneNumberRegex = /\d{10}/g; var questionText = document.getElementById('subject').value; var phoneNumberDetec
##########
主题行有电话号码以外的文本。
$("#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
而感到内疚,但我在以后润色代码时会这样做。