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

Javascript 更好的声明正则表达式的方法,javascript,regex,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|05

我有不同国家的正则表达式

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}$/;
有没有更好的方式申报这些?一个能为世界上每一个国家服务的正则表达式


谢谢

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

var ukM = /07[0-9]\d{7,8}$/;
var ireM = /08[35-9]\d{7,8}$/;
...
您可以在以下位置进行更改:

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}$/;

你错过了
捕获组
()
可能用于提取。我认为这些组是由于替换而存在的,但如果OP需要,可以添加这些组。@Tushar,你能给我一个例子说明你的意思吗?@Tushar:不,这不正确@图沙尔可能是不同的县的/08([5-9]| 3)\d{7,8}$
079
由两个国家共享。您可以将它们组合成一个带有不同捕获组的正则表达式。只需检查哪一组匹配为标志。