繁体   English   中英

屏蔽文本区域中的电话号码

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM