声明正则表达式的更好方法

时间:2015-07-13 16:47:06

标签: javascript regex

我为不同的国家/地区提供这些正则表达式,

var ukM = /(070|071|072|073|074|075|076|077|078|079)\d{7,8}$/;
var ireM = /(083|085|086|087|089)\d{7,8}$/;
var ireL = /(01|021|022|023|024|025|026|027|028|029|0402|0404|041|042|043|044|045|046|047|049|0504|0505|051|052|053|056|057|058|059|061|062|063|064|065|066|067|068|069|071|074|090|091|093|094|095|096|097|098|099)\d{7,8}$/;
var usaM = /(713|071|072|073|074|075|076|077|078|079)\d{7,8}$/;
var usaL = /(201|202|203|204|205|206|207|208|209|210|211|212|213|214|215|216|217|218|219|224|225|226|227|228|229|231|234|236|239|210|211|212|213|214|215|216|217|218|219|224|)\d{7,8}$/;

我可以用更好的方式宣布这些吗?一个世界上每个国家都有的正则表达式?

由于

2 个答案:

答案 0 :(得分:3)

您可以使用字符类来减少正则表达式,例如

var ukM = /07[0-9]\d{7,8}$/;
var ireM = /08[35-9]\d{7,8}$/;
...

答案 1 :(得分:0)

您可以更改它:

var ukM = /(07\d)\d{7,8}$/;
var ireM = /(08[35-79])\d{7,8}$/;
var ireL = (01|2[1-9]|040[24]|04[1-79]|050[45]|05[1-36-9]|06[1-9]|07[14]|09[0-9]\d)\d{7,8}$/;
var usaM = /(713|07[1-9])\d{7,8}$/;
var usaL = /(20[1-9]|2[12]\d|23[1469])\d{7,8}$/;