javascript中的reg ex,仅允许使用特定的电话号码格式(123)456-7890

时间:2019-02-21 17:25:57

标签: javascript regex

我目前具有验证电话号码的功能。此信息将输入到Web应用程序中。稍后将其显示在Windows应用程序中,这就是问题所在。我有一个特定的函数,可将数据填充到控件中,但它仅接受一种电话号码格式,即

  

(123)456-7890

这是我们一直在使用的功能,但是它允许用户输入10位数的任何格式,因此可以是123-45-6789之类的内容

function validatePhone(fld) {
    var error = "";
    var stripped = fld.value.replace(/[\(\)\.\-\ ]/g, '');     

   if (fld.value == "") {
        return false;
    } else if (isNaN(parseInt(stripped))) {
        return false;
    } else if (!(stripped.length == 10)) {
        return false;
    } 
    return true;
}

我浏览了整个网络,通常他们有两种格式(123) 456-7890 | 123-456-7890的特定正则表达式,正则表达式为((((\ d {3})?)|(\ d {3}- ))?\ d {3}-\ d {4},但是在我的情况下,我只能使用1种格式(带括号) 有什么方法可以更改此设置,以便它可以验证电话号码的格式是否与我上面显示的完全一样?预先感谢

2 个答案:

答案 0 :(得分:1)

使用下面的RegExp验证电话号码

const valid = "(123) 456-7890";
const invalid = "1234567890";
const re = /^\(\d{3}\) \d{3}-\d{4}$/;
console.log(
  re.test(valid),
  re.test(invalid)
);

答案 1 :(得分:1)

您可以尝试以下正则表达式

let regex = /^\(\d{3}\) \d{3}-\d{4}$/
console.log(regex.test("(123) 456-7890")) // true
console.log(regex.test("123-456-7890")) //false