【发布时间】:2018-12-12 13:46:26
【问题描述】:
我正在尝试制作一个可以匹配电话号码的正则表达式,因此请告诉我电话号码是否有效。
我想验证电话号码前是否有国家/地区ID,这个格式正确。
例如:+(33)0123456789我想确定如果用户开始输入第一个括号,它必须后跟数字并以右括号结束。
我已经成功使用 PCRE 引擎
^[+]?((\()?(?(2)[0-9]{1,4})(?(2)\)))?([0-9]{2}){1}([\.\- ]?[0-9]{2}){4}$
但我意识到这种方式不适用于 javascript 引擎,不支持条件。
^[+]?((\()?((?=\2)[0-9]{1,4})((?=\2)\)))?([0-9]{2}){1}([\.\- ]?[0-9]{2}){4}$
它不能满足我的需求。我想检查是否设置了第一个括号,那么它后面必须跟数字和右括号。
所以我问你是否有 javascript 中的解决方法来做到这一点?
非常感谢您的帮助,谢谢:)
【问题讨论】:
-
听起来好像您只想将
(\d{1,4})设为可选。试试^\+?((?:\([0-9]{1,4})\))?([0-9]{2})([. -]?[0-9]{2}){4}$,见this demo。 -
正是我想做的!似乎条件正则表达式不是我在这种情况下所需要的。我固执地尝试使用它,但您的解决方法要简单得多,谢谢
标签: javascript regex pcre