如何通过正则表达式测试用户手机号码.
伊朗手机有这样的数字系统:
伊朗手机有这样的数字系统:
091- --- ---- 093[1-9] --- ----
一些示例前缀:
0913894---- 0937405---- 0935673---- 0912112----
解决方法
检测伊朗手机号码的最佳正则表达式
我确定它是用于检测伊朗手机号码的最佳正则表达式.
(0|\+98)?([ ]|-|[()]){0,2}9[1|2|3|4]([ ]|-|[()]){0,2}(?:[0-9]([ ]|-|[()]){0,2}){8}
在javascript中使用
var mobileReg = /(0|\+98)?([ ]|-|[()]){0,2}){8}/ig,junkReg = /[^\d]/ig,persinNum = [/۰/gi,/۱/gi,/۲/gi,/۳/gi,/۴/gi,/۵/gi,/۶/gi,/۷/gi,/۸/gi,/۹/gi],num2en = function (str){ for(var i=0;i<10;i++){ str=str.replace(persinNum[i],i); } return str; },getMobiles = function(str){ var mobiles = num2en(str+'').match(mobileReg) || []; mobiles.forEach(function(value,index,arr){ arr[index]=value.replace(junkReg,''); arr[index][0]==='0' || (arr[index]='0'+arr[index]); }); return mobiles; }; // test console.log(getMobiles("jafang 0 91 2 (123) 45-67 jafang or +۹۸ (۹۱۵) ۸۰ ۸۰ ۸۸۸"));
支持所有这些选项
912 123 4567 912 1234 567 912-123-4567 912 (123) 4567 9 1 2 1 2 3 4 5 6 7 9 -1 (2 12))3 45-6 7 and all with +98 or 0 +989121234567 09121234567 9121234567
甚至波斯数字
+۹۸ (۹۱۵) ۸۰ ۸۰ ۸۸۸
并且仅检测真正的伊朗运算符编号091x 092x 093x 094x