[英]Mask phone number in textarea
我正在编写一个脚本,该脚本在键入主题行时###-###-####
所有电话的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, "###-###-####");
}
});
没用 我究竟做错了什么?
这是指向CodePen的链接: https ://codepen.io/myleschuahiock/pen/qZOydm
这没有用,因为您的questionText
变量是主题值之外的字符串。 您需要进行replace
然后将ID为“ subject”的questionText
文本的值分配给您的input
。
这是工作代码:
$("#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);
}
});
function formatUSPhoneNumber(number) { var x = 0, groups = [], len, num; /* Force string conversion */ num = number+''; /* Remove non numeric characters */ num = num.replace(/\\D/g,''); if(num.length !== 10){ throw new Error('The argument passed needs to contain 10 digits.') return; } len = num.length; num = num.split('').reverse(); while( x < len/3){ groups[x] = num.splice(-3,3).reverse().join(''); x++; } if( groups.length > 3 ){ groups[2] = groups[2].concat( groups.splice( 3 - groups.length, 1 ) ); } return groups.join('-'); } console.log(formatUSPhoneNumber("0545555555"))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.