问题描述
一个电话号码的正则是:^((d{3,4}-)?d{7,8})$|^(1d{10})$粗略认为是固话号或者手机号,固话号是3~4位区号数字+破折号+7~8位数字,手机号是1打头11位数字.那么多个电话号码,中间以中文逗号分隔的正则应该怎么写? 下面是我写的一个正则,但是不能通过各种情况的验证<script>//中文逗号var test1 = '1232132144,12333213111';//12位数字var test2 = '132132133333';//非法的逗号位置var test3 = '13213213333,13213213333,';var test4 = ',13213213333,13213213333';//非逗号分隔var test5 = '13213213333 13213213333';var test6 = '13213213333.13213213333';//正确的格式var test7 = ''13213213333,0311-1234567,011-12345678';var phoneRegx = /((((d{3,4}-)?d{7,8})|(13[0-9]{9})),){0,}(((d{3,4}-)?d{7,8})|(13[0-9]{9}))$/;alert(phoneRegx.test(test1));alert(phoneRegx.test(test2));alert(phoneRegx.test(test3));alert(phoneRegx.test(test4));alert(phoneRegx.test(test5));alert(phoneRegx.test(test6));alert(phoneRegx.test(test7));</script> 求高手帮助解决
解决方案
^((d{3,4}-)?d{7,8}|13[0-9]{9})(,(d{3,4}-)?d{7,8}|13[0-9]{9})*$
解决方案二:
((d{3,4}-)?d{7,8}|13[0-9]{9})(,(d{3,4}-)?d{7,8}|13[0-9]{9})*