javascript 如何为不以0或1开头的电话号码编写正则表达式

ff29svar  于 2023-05-12  发布在  Java
关注(0)|答案(1)|浏览(130)

我有下面的正则表达式

// 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(✔️)正确

fcwjkofz

fcwjkofz1#

您可以将其分组为:

^\([2-9]\d{2}\)\d{3}-\d{4}$
  • ^-行锚起点
  • \(-文字(
  • [2-9]-2到9(含)之间的任意数字
  • \d{2}-两位数
  • \)-文字)
  • \d{3}-三位数
  • --文字-
  • \d{4}-四位数
  • $-线路末端锚点

Demo

相关问题