【发布时间】:2012-10-19 06:29:34
【问题描述】:
我对正则表达式有点陌生,所以我还不知道它的可能性。所以,不知道这个问题会不会很难解决。
我的电话字符串格式非常宽松,需要以固定的方式对其进行格式化(至少尽力而为)。 "899-123-4-45; 22-56-87", "5 99-25-31-71", “577-345-678,274-89-56”。
这是我知道的信息:
新的固定电话以 2-XX-XX-XX 开头,后跟 6 个数字(它们之间可以是两种分隔符,“-”或“”,其中数字未知)。
旧固定电话仅包含 6 个号码 XX-XX-XX。
旧手机代码包含 8XX-YY-YY-YY 9 个号码。第一个是8。XX是运营商的代码(不知道全部)。
新手机码包含5XX-YY-YY 9个号码,唯一的区别是第一个号码。
有些记录包含旧座机代码、新座机代码、旧手机代码和新手机代码。
我需要以新格式存储所有数字,只有两个分隔符“-”和“,”。 例如:“599-12-34-56,2-45-61-34”、“2-45-65-12”、“574-12-34-56”。
我只是不知道从哪里开始。我是否应该尝试只用包含数字的字符串拆分大字符串,然后只检索数字并确定它是哪种格式?还是有更简单的解决方案?
你会如何解析这个字符串:“574-12-34-56; 2 456 324, 455-566 2 22 40 56”?首先将这些分成3部分?我可以用“;”来分割它吗或“”或“,”?那么我应该只检索数字并确定它们的样式并正确格式化吗?
【问题讨论】:
-
像
574-12-34-56; 2 456 324, 455-566 2 22 40 56这样的字符串可能可以处理..但是如果你有像574-12-34-56; 2 456 324, 455-566 2 22 40 56 2 22 40 56 2 22 40 56这样的字符串,我认为不会。 -
我不认为电话号码的正则表达式与这个问题密切相关
标签: javascript regex parsing