我有下面的正则表达式
// 1st
export const phoneRegex = /^\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$/;
// 2nd
export const phoneRegex = /^\((?![0-1]})\(?([0-9]{2})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$/;
我对第一个正则表达式的理解是,它检查前3个数字是0-9,接下来的3个是以连字符开头的0-9,最后4个是以连字符开头的0-9。
我们要求不允许第一个数字是0或1。所以,第二个正则表达式被作为一个解决方案,但显然不起作用,因为它仍然允许第一个数字是0或1。
此外,这个正则表达式也在检查以确保电话号码的格式正确,如(xxx)xxx-xxxx
(我认为)...
目标
(199)912-0348()错误
(299)912-0348(✔️)正确
(021)231-1238()错误
(821)231-1238(✔️)正确
1条答案
按热度按时间fcwjkofz1#
您可以将其分组为:
^
-行锚起点\(
-文字(
[2-9]
-2到9(含)之间的任意数字\d{2}
-两位数\)
-文字)
\d{3}
-三位数-
-文字-
\d{4}
-四位数$
-线路末端锚点Demo