仅限电话号码和分机的正则表达式

KBr*_*riz 4 regex asp.net

我已多次尝试为asp.net Intranet表单Web表单编写正则表达式字段验证程序.我试图调整我的没有成功.我正在使用并尝试编辑的当前版本是

((\(\d{3}\) ?)|(\d{3}-))?\d{3}-\d{4} 
Run Code Online (Sandbox Code Playgroud)

我需要能够允许.

x1245
508-555-1212
5085551212
508 555 1212
508-555-1212 x1234
5085551212 x1243
508 555 1212 x1234
Run Code Online (Sandbox Code Playgroud)

我所覆盖的唯一一个是列表中的第二个是第二个下来.

Sam*_*eff 6

This will do it.

(\d\d\d-?\s?\d\d\d-?\s?\d\d\d\d\s?)?(x\d\d\d\d)?
Run Code Online (Sandbox Code Playgroud)

or shorter equivalent:

(\d{3}-?\s?\d{3}-?\s?\d{4}\s?)?(x\d{4})?
Run Code Online (Sandbox Code Playgroud)

您希望匹配完整的电话号码,可选择使用空格/短划线,并使整个事物可选,然后包含扩展名,并使其成为可选项.