Regex 用字母书写的电话号码的正则表达式
我有一个与电话号码匹配的regexpRegex 用字母书写的电话号码的正则表达式,regex,Regex,我有一个与电话号码匹配的regexp (((\d).{0,5}){7}) 但现在我需要一个常规表达式,它匹配用字母字符书写的电话号码,如下所示: nueve nueve tres uno cinco cero tres cinco cinco siete 我的猜测是,你需要这种形式,你不希望用户交换电话联系方式。也许他们必须支付订阅费才能(通过电话)联系该服务的其他用户。有些用户有时会尝试将这些信息以奇怪的格式(数字作为单词)放到消息中。这个假设正确吗 如果是这样,那么我不确定正则表达式是
(((\d).{0,5}){7})
但现在我需要一个常规表达式,它匹配用字母字符书写的电话号码,如下所示:
nueve nueve tres uno cinco cero tres cinco cinco siete
我的猜测是,你需要这种形式,你不希望用户交换电话联系方式。也许他们必须支付订阅费才能(通过电话)联系该服务的其他用户。有些用户有时会尝试将这些信息以奇怪的格式(数字作为单词)放到消息中。这个假设正确吗 如果是这样,那么我不确定正则表达式是否是解决这个问题的最佳方案。您必须执行以下操作:
\b(zero|one|two|three|four|five|six|seven|eight|nine)\b
然后可以说,如果匹配,则消息无效最大的问题是,用户可以简单地用不同的语言输入数字,或者使用拼写错误但容易理解的单词,或者在每个字母之间添加空格(或任何类型的标点符号)(有很多方法)
你最好做一些模糊匹配,返回一个等级值(Levenshtein距离),表示用户在消息中输入电话号码的可能性。然后,您将获得该排名的threashold,如果超过该值,将导致其验证失败。不过,这比基本正则表达式复杂得多。以下是一些链接,您可以查看更多信息: