我在一些网站上找到了这个代码,它工作得很完美。它验证电话号码是以下格式之一: (123) 456-7890或123-456-7890
问题是我的客户端(我不知道为什么,可能是客户端)想要添加另一种格式,连续的十个数字,像这样:1234567890。
我用这个正则表达式,
/^(\()?\d{3}(\))?(-|\s)?\d{3}(-|\s)\d{4}$/
我如何添加它也验证另一种格式?我不擅长使用正则表达式。
我在一些网站上找到了这个代码,它工作得很完美。它验证电话号码是以下格式之一: (123) 456-7890或123-456-7890
问题是我的客户端(我不知道为什么,可能是客户端)想要添加另一种格式,连续的十个数字,像这样:1234567890。
我用这个正则表达式,
/^(\()?\d{3}(\))?(-|\s)?\d{3}(-|\s)\d{4}$/
我如何添加它也验证另一种格式?我不擅长使用正则表达式。
当前回答
/ s ^ + 1 ? \ * d {3 \ (? ? }(?:\)|[-|\ s]) \ s * ? [d {3} - | \ s] ?\ d{4} -美元
这篇文章虽然老了,但还是想留下我的一点贡献。 这些是可以接受的: 5555555555 555-555-5555 (555) 555 - 5555 1 (555) 555 - 5555 1 555 555 5555 1 555-555-5555 1 (555) 555-5555
这些是不被接受的:
555 - 5555 >接受这个用:^ \ + ? 1 ? \ s * ? \ (? (\ d {3 })?(?:\)|[-|\ s]) ? \ s * ? \ d {3} (- | \ s) ?\ d {4} $
5555555 - - - >接受这个用:^ \ + ? 1 ? \ s * ? \ (? (\ d {3 })?(?:\)|[-|\ s]) ? \ s * ? \ d {3} (- | \ s) ?\ d {4} $
1 555) 555 - 5555 123 * * & ! !asdf # 55555555 (6505552368) 2 (757) 622-7382 0 (757) 622-7382 -1 (757) 622-7382 2 757 622-7382 10 (757) 622-7382 27576227382 (275) 76227382 2 (757) 6227382 2 (757) 622 - 7382 (555) 5 (55) -5555
这是我使用的代码:
function telephoneCheck(str) {
var patt = new RegExp(/^\+?1?\s*?\(?\d{3}(?:\)|[-|\s])?\s*?\d{3}[-|\s]?\d{4}$/);
return patt.test(str);
}
telephoneCheck("+1 555-555-5555");
其他回答
我不得不承认,核实电话号码是一项艰巨的任务。 至于这个具体的问题,我会改变正则表达式从
/^(()?\d{3}())?(-|\s)?\d{3}(-|\s)\d{4}$/
to
/^(()?\d{3}())?(-|\s)?\d{3}(-|\s)?\d{4}$/
因为唯一多余的元素是最后的破折号/空格。
简单的正则表达式:/ \ b \ d {3} [-] ? \ d{3}[-]吗?\ d {4} \ b / g
看看这个格式,希望它有用: 444-555-1234 f: 246.555.8888 m: 1235554567
/ s ^ + 1 ? \ * d {3 \ (? ? }(?:\)|[-|\ s]) \ s * ? [d {3} - | \ s] ?\ d{4} -美元
这篇文章虽然老了,但还是想留下我的一点贡献。 这些是可以接受的: 5555555555 555-555-5555 (555) 555 - 5555 1 (555) 555 - 5555 1 555 555 5555 1 555-555-5555 1 (555) 555-5555
这些是不被接受的:
555 - 5555 >接受这个用:^ \ + ? 1 ? \ s * ? \ (? (\ d {3 })?(?:\)|[-|\ s]) ? \ s * ? \ d {3} (- | \ s) ?\ d {4} $
5555555 - - - >接受这个用:^ \ + ? 1 ? \ s * ? \ (? (\ d {3 })?(?:\)|[-|\ s]) ? \ s * ? \ d {3} (- | \ s) ?\ d {4} $
1 555) 555 - 5555 123 * * & ! !asdf # 55555555 (6505552368) 2 (757) 622-7382 0 (757) 622-7382 -1 (757) 622-7382 2 757 622-7382 10 (757) 622-7382 27576227382 (275) 76227382 2 (757) 6227382 2 (757) 622 - 7382 (555) 5 (55) -5555
这是我使用的代码:
function telephoneCheck(str) {
var patt = new RegExp(/^\+?1?\s*?\(?\d{3}(?:\)|[-|\s])?\s*?\d{3}[-|\s]?\d{4}$/);
return patt.test(str);
}
telephoneCheck("+1 555-555-5555");
我建议使用一些更清晰的东西(特别是考虑到谁必须维护代码)……是什么:
var formats = "(999)999-9999|999-999-9999|9999999999";
var r = RegExp("^(" +
formats
.replace(/([\(\)])/g, "\\$1")
.replace(/9/g,"\\d") +
")$");
regexp是从一个清晰的模板构建的?添加一个新的将是一个无需动脑,甚至可能是客户自己可以做到这一点,在“选项”页面。
- ^ (() \ d {3} (?) (s - | \) ? d {3} (- | \ s) ?\ d{4} -美元
的吗?字符表示前一组匹配0次或1次。组(-|\s)将匹配-或|字符。