条件正则表达式 javascript
Conditional regex javascript
我正在尝试制作一个可以匹配 phone 数字的正则表达式,因此请告诉我 phone 数字是否有效。
我想验证phone号码前是否有国家ID,这个格式正确。
例如:+(33)0123456789 我想确定用户是否开始键入第一个括号,它后面必须跟数字并以右括号结束。
PCRE引擎成功了
^[+]?((\()?(?(2)[0-9]{1,4})(?(2)\)))?([0-9]{2}){1}([\.\- ]?[0-9]{2}){4}$
但我意识到这种方式不适用于 javascript 引擎,不支持条件。
^[+]?((\()?((?=)[0-9]{1,4})((?=)\)))?([0-9]{2}){1}([\.\- ]?[0-9]{2}){4}$
它不能满足我的需求。我想检查是否设置了第一个括号,然后它后面必须跟数字和一个右括号。
所以我问你 javascript 中是否有解决方法来做到这一点?
非常感谢您的帮助,谢谢 :)
正则表达式的 ((\()?(?(2)[0-9]{1,4})(?(2)\)))?
部分正在匹配可选的较小模式序列。 (\()?
匹配一个可选的 (
并将其放在第 2 组中。然后,如果第 2 组匹配,(?(2)[0-9]{1,4})
匹配 1 到 4 个数字。如果第 2 组匹配,则 (?(2)\))
匹配 )
。基本上,这等于 (?:\([0-9]{1,4})\))?
.
因此,您在这里不需要条件构造。
您可以使用
^\+?(?:\([0-9]{1,4})\)?[0-9]{2}(?:[. -]?[0-9]{2}){4}$
详情
^
- 字符串开头
\+?
- 一个可选的 +
(?:\([0-9]{1,4})\)?
- 可选序列:(
,1 到 4 位和 )
[0-9]{2}
- 2 位数
(?:[. -]?[0-9]{2}){4}
- 出现 4 次可选的 space、点或 -
,后跟 2 个数字
$
- 字符串结尾。
我正在尝试制作一个可以匹配 phone 数字的正则表达式,因此请告诉我 phone 数字是否有效。
我想验证phone号码前是否有国家ID,这个格式正确。
例如:+(33)0123456789 我想确定用户是否开始键入第一个括号,它后面必须跟数字并以右括号结束。
PCRE引擎成功了
^[+]?((\()?(?(2)[0-9]{1,4})(?(2)\)))?([0-9]{2}){1}([\.\- ]?[0-9]{2}){4}$
但我意识到这种方式不适用于 javascript 引擎,不支持条件。
^[+]?((\()?((?=)[0-9]{1,4})((?=)\)))?([0-9]{2}){1}([\.\- ]?[0-9]{2}){4}$
它不能满足我的需求。我想检查是否设置了第一个括号,然后它后面必须跟数字和一个右括号。
所以我问你 javascript 中是否有解决方法来做到这一点?
非常感谢您的帮助,谢谢 :)
正则表达式的 ((\()?(?(2)[0-9]{1,4})(?(2)\)))?
部分正在匹配可选的较小模式序列。 (\()?
匹配一个可选的 (
并将其放在第 2 组中。然后,如果第 2 组匹配,(?(2)[0-9]{1,4})
匹配 1 到 4 个数字。如果第 2 组匹配,则 (?(2)\))
匹配 )
。基本上,这等于 (?:\([0-9]{1,4})\))?
.
因此,您在这里不需要条件构造。
您可以使用
^\+?(?:\([0-9]{1,4})\)?[0-9]{2}(?:[. -]?[0-9]{2}){4}$
详情
^
- 字符串开头\+?
- 一个可选的+
(?:\([0-9]{1,4})\)?
- 可选序列:(
,1 到 4 位和)
[0-9]{2}
- 2 位数(?:[. -]?[0-9]{2}){4}
- 出现 4 次可选的 space、点或-
,后跟 2 个数字$
- 字符串结尾。