【发布时间】:2015-06-03 14:36:01
【问题描述】:
我的项目快结束了,我需要一些助手。我需要一个正则表达式代码来验证电话号码。如果电话号码不为空,请验证电话号码是否为以下格式之一:
‘xxx–xxx-xxxx’ – 10 位数字,带有两个破折号,其中第一个破折号在第三和第四位数字之间,第二个破折号在第六和第七位数字之间。
‘xxxxxxxxxx’’——全部 10 位数字,或者,
‘(xxx)xxxxxxx’’ – 10 位数字,前三位数字用括号括起来。
‘(xxx)–xxx-xxxx’——10位数字,前三位用括号括起来,第六位和第七位之间有一个破折号。 如果电话号码不符合要求的格式,它还需要提供警报。验证必须接受所有格式,否则将失败。
我的问题是我尝试使用正则表达式来做到这一点,因为我觉得这对我来说很容易。我根本不是经验丰富的程序员,所以编写代码从来都不是我的事,我的问题是有一个 RegExpression 可以同时涵盖所有格式,如果没有选择数字并且用户不使用它,仍然能够给我一个警报所需的格式。
这是我当前的代码,但它不包括四种格式。
var phone = document.myForm.phone.value;
if (!/^\d{3}-\d{3}-\d{4}$/.test(document.myForm.phone.value)) {
alert("Please enter the correct phone format ");
此代码仅涵盖 xxx-xxx-xxxx。是否可以使用这种代码覆盖所有格式?请它必须是像我在代码示例中那样以“var phone”开头的正则表达式,否则它往往会变得混乱。
提前致谢
【问题讨论】:
-
你为什么不学习正则表达式或使用谷歌?这是一个常见的问题。
-
为什么不为其他 3 种模式添加测试?
-
通过替换
()-\s标准化并验证 xxxxxxxxxx ? -
@AlexK。但是输入
()()()()()(((())))(()(89898989------08))是正确的,对吗?
标签: javascript regex validation