html模式电话号码可选扩展

时间:2018-07-31 17:27:22

标签: regex html5

我是html的新手,我正在尝试使用模式来验证电话号码。

电话号码可能没有分机号。

电话号码的格式应为999-999-9999 ext 99999999。我允许最多8位数字的扩展名。验证可与此配合使用:

pattern="[0-9]{3}[ -][0-9]{3}[ -][0-9]{4}"

并正确验证。但是,当我尝试将扩展名添加到上述模式时:

pattern="[0-9]{3}[ -][0-9]{3}[ -][0-9]{4}[\ext][0-9]{8}"

然后我可以在电话号码的任何部分添加字符。我只希望电话号码的所有部分(包括分机号)中的数字。

1 个答案:

答案 0 :(得分:1)

尝试([0-9]{3}-[0-9]{3}-[0-9]{4})( ext [0-9]{0,8})?

在这里,我定义了两个组,第一个([0-9]{3}-[0-9]{3}-[0-9]{4})将电话号码捕获为3位数字,然后是一个破折号,然后是3位数字,然后是一个破折号和4位数字。

第二组( ext [0-9]{1,8})?将扩展名匹配捕获为空格,后跟文本ext,后跟1至8位数字。根据{{​​1}}

的指定,第二组可能出现零到一次