正则表达式 - 长度9,第一个字符9

时间:2015-05-05 13:01:36

标签: regex

我正在尝试使用以下条件创建一个匹配电话号码的正则表达式:

  • 长度9
  • 第一个字符必须是9
  • 其余8必须为数字0-9

这就是我正在尝试的,但它不起作用:

$(".ValidarTelefono").keypress(function (e) {        
    tecla = (document.all) ? e.keyCode : e.which;
    if (tecla == 8) return true;
    patron = /^9\d{8}$/;
    te = String.fromCharCode(tecla);
    return patron.test(te);
});

有人能告诉我哪里出错了吗?

2 个答案:

答案 0 :(得分:1)

这个正则表达式将在我所知道的每个正则表达式引擎中完成你的工作:

9[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]

许多(但不是全部)正则表达式引擎提供了各种简化方法:

  • 您可以将\d替换为[0-9]
  • 您可以使用枚举量词而不是数字子模式的八个字面重复(即[0-9]{8}\d{8}

此外,根据您对此正则表达式的用途,您可能也可能不想将其锚定到输入的开头和/或结尾(通过在开头插入^和/或最后$

答案 1 :(得分:0)

Regex101

^9\d{8}$ 

Regular expression visualization

Debuggex Demo

是纯粹最纯的版本,因为它不允许任何分隔符。