我想要一个正则表达式或某些功能来标准化我的ios应用程序输入的所有电话号码。
因此输入如下
全部翻译成
以下正则表达式是否可以将电话号码匹配到3个匹配组中,然后我可以将其格式化为正确的输出字符串?
^ \ d?(\ d {3})\ d?\ d?(\ d {3})\ d?(\ d {4})$
正则表达式结束时的$符号是否需要或者是否会搞乱?
正则表达式是iOS中最好的方法吗?
答案 0 :(得分:1)
^
和$
匹配输入行的开头和结尾。在这种特殊情况下,您没有提供足够的信息来确定这些锚点是否合适。
由于您在iOS工作,您是否查看过NSDataDetector
课程?它提供了检测字符串的机制,它可以是许多不同格式的有效电话号码。这将使您的电话号码检测与用户在其设备上的许多其他应用中看到的行为相匹配。
NSDataDetector
没有提供重新格式化电话号码的机制,因此您仍需要确定如何将检测到的字符串重新格式化为可能的电话号码(可能包含多于或少于10位数)。如果你这样做,你应该回过头来保留任何检测到的数字的原始格式,这种格式与你预期的格式不符。