问题描述
- 前辈,JavaScript正则匹配,求找bug,谢谢
-
<body> <script> var objStr="手机号A13512345678,手机号B13212345678,手机号C13912345678"; var reg=new RegExp("13[4-9](//d){8}","g"); document.write("发现移动手机号码"); findPhoneNumbers(objStr.match(reg)); reg.compile("13[0-3](//d){8}","g"); document.write("发现联通手机号码"); findPhoneNumbers(objStr.match(reg)); function findPhoneNumbers(arr) { for(var i=0;i<arr.length;i++) { document.write("<li>"+arr[i]+"<br />"); } } </script> </body>
解决方案
reg.compile(/130-3/,"g");这句报错了,导致后续的findPhoneNumbers没有执行
var objStr = "手机号A13512345678,手机号B13212345678,手机号C13912345678";
var reg = new RegExp("13[4-9](\d{8})", "g");
document.write("发现移动手机号码<br>");
findPhoneNumbers(objStr.match(reg));
document.write("发现联通手机号码<br>");
reg.compile("13[0-3](\d{8})", "g");////传递字符串
//reg.compile(/13[0-3](\d{8})/g);////要么直接传递正则,你传递第二个参数第一个参数需要为字符
findPhoneNumbers(objStr.match(reg));
function findPhoneNumbers(arr) {
if (!arr) return;
for (var i = 0; i < arr.length; i++) {
document.write("<li>" + arr[i] + "<br />");
}
}
解决方案二:
前辈,已经修改了,但是不能匹配联通手机号,求compile()用法调bug谢谢
<!-- <script>
var objStr="手机号A13512345678,手机号B13212345678,手机号C13912345678";
var reg1=new RegExp(/13[4-9](d{8})/,"g");
document.write("发现移动手机号码");
findPhoneNumbers(objStr.match(reg1));
var reg2=new RegExp(/13[0-3](d{8})/,"g");
document.write("发现联通手机号码");
findPhoneNumbers(objStr.match(reg2));
function findPhoneNumbers(arr)
{
for(var i=0;i<arr.length;i++)
{
document.write("<li>"+arr[i]+"<br />");
}
}
</script> -->
<script>
var objStr="手机号A13512345678,手机号B13212345678,手机号C13912345678";
var reg=new RegExp(/13[4-9](d{8})/,"g");
document.write("发现移动手机号码");
findPhoneNumbers(objStr.match(reg));
document.write("发现联通手机号码");
reg.compile(/13[0-3](d{8})/,"g");
findPhoneNumbers(objStr.match(reg));
function findPhoneNumbers(arr)
{
for(var i=0;i<arr.length;i++)
{
document.write("<li>"+arr[i]+"<br />");
}
}
</script>
时间: 2024-10-07 20:29:32