Twilio的电话号码验证正则表达式

3
我正在尝试创建一个正则表达式,强制用户只输入符合Twilio API接受的电话号码格式。要求以+40(例如:+40123456789)为前缀,而不是0040,且没有分隔符。仅允许字符“+”和数字。
到目前为止,我想到的是:\+\d{10,}
这好用吗?如果不好用,请帮忙改进一下。
谢谢。
编辑:
- 电话号码应包含国家和电话号码的前缀。 - 前缀不固定为+40(罗马尼亚前缀)。那只是一个例子。 - 前缀应以+而不是00开头。 - 号码不应具有分隔符。
好例子:+40123456789 坏例子:(074)352-7819

请您能否分享确切的需求并提供好的和坏的示例呢?我看不到前导空格。加号是否是必须的?最少需要10个数字吗?如果是,您可以使用(?<=\W|^)\+?[1-9][0-9]{9,}(?=\W|$)。请参见 https://regex101.com/r/rI6gB9/1。 - Wiktor Stribiżew
2个回答

4

2
提供的模式将匹配一个加号后跟着10个数字。如果您的字符串以字母、空格或任何其他字符开头,该正则表达式仍将成功。
如果您想要以下内容:
1. 以 "+40" 开始 2. 包含总共10位数字和加号。 3. 没有以上之外的任何内容
下面的代码应该可以解决问题:^\+40\d{8}$。这里提供一个示例here

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接