我试图解决一个问题,我发现最好的解决方案是使用正则表达式。Regex电话号码
我没有先进的正则表达知识,所以我真的需要你的帮助。
的问题是,我需要确定一个字符串是否是电话号码或手机,我们在巴西在这里使用的方式,像这样:
的电话号码可能是这种格式:
0 + XX + XXXXXXXX = 01121234567
或者
XX + XXXXXXXX = 1121234567
或者
XXXXXXXX = 21234567
在这种情况下它的电话号码,所以它需要先从2,3,4或5
而且如果它的手机具有9位数字并且必须以9开头,排他性和第二位数字必须是6,7或8:
0 + XX + 9XXXXXXXX = 011961234567
或者
XX + 9XXXXXXXX = 11971234567
或者
9XXXXXXXX = 981234567
所以,如果我得到字符串“011984160986”,“11984160986”或“984160986”,例如,我需要能够识别它的手机,并且相同的电话号码。
在同一时间,我必须能够检查字符串“84160289”它不是一个有效的电话号码。
任何人都可以用这个正则表达式来解决这个问题吗?
我不喜欢在我的代码中使用大量的“ifs”来验证这一点。
谢谢。
你说“第二位必须是6,7或8”,但在手机的例子中,他们不这样做。 – horcrux
我的不好,这是错误的 –
*“我试图解决一个问题,我发现最好的解决方案是使用正则表达式。”* [现在你有两个问题](https://en.wikiquote.org/wiki/Jamie_Zawinski#归因于) –