gpt4 book ai didi

regex - 用于匹配电话号码的正则表达式

转载 作者:行者123 更新时间:2023-12-04 00:03:30 25 4
gpt4 key购买 nike

我需要一个正则表达式来匹配电话号码。我只想知道该号码是否可能是电话号码,它可以是任何电话格式,美国或国际电话。所以我制定了一个策略来确定它是否匹配。

我希望它接受以下字符:0-9 以及 ,.()- 并且可以选择以 + 开头(对于国际号码)。如果字符串包含任何其他字符,则该字符串不应匹配。

我试过这个:

/\+?[0-9\/\.\(\)\-]/

但它匹配号码中间有 + 的电话号码。它匹配包含字母字符的数字(我不想要那样)。

最后,我想将最小长度设置为 9 个字符。

有什么想法吗?

感谢您的帮助,我显然对 RegEx 的东西不是太快:)

最佳答案

好吧,你已经很接近了。试试这个:

^\+?[0-9\/.()-]{9,}$

如果没有开始和结束 anchor ,则允许部分匹配,因此它可以匹配字符串 :-)+123 中的 +123

如果您想要至少 9 个数字,而不是任何字符(因此 ---.../// 无效),您可以使用:

^\+?[\/.()-]*([0-9][\/.()-]*){9,}$

或者,使用前瞻 - 在匹配 [0-9/.()-]* 的字符串之前,正则表达式引擎正在寻找 (\D*\d){9 },这是一个 9 位数字,每个数字前面可能有其他字符(我们将在稍后验证)。

^\+?(?=(\D*\d){9})[0-9\/.()-]*$

关于regex - 用于匹配电话号码的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4395058/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com