javascript-前辈,JavaScript正则匹配,求找bug,谢谢

问题描述

前辈,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

javascript-前辈,JavaScript正则匹配,求找bug,谢谢的相关文章

JavaScript中使用正则匹配多条,且获取每条中的分组数据_javascript技巧

不过我要面对的是一个很松散的HTML页面,无法XML 因此,本文的重点在于如果要获取的网页中有Table或List段落,需要将这些段落的信息按照列的方式保存到JS的数组中 直接贴代码: 复制代码 代码如下: var str = "字符串字符串<table><tr><th>ID</th><th>姓名</th><th>电话</th></tr><tr><td>01<

正则匹配内容的问题,谢谢.

问题描述 我想取出我的网页HTML代码里所有<cms:beanproperty="metatitle"></cms:bean>这种标记,正则怎么写?谢谢. 解决方案 解决方案二:<cms:bean(.|n)*?cms:beans*>解决方案三:<cms:bean(.¦n)*?cms:bean>解决方案四:使用的测试结果:<cms:beans*propertys*=s*"metatitle"s*>([sS]*

javascript-求前辈解决js透明度“事件回调”bug?

问题描述 求前辈解决js透明度"事件回调"bug? <!doctype html> Demo <br> *{margin:0;padding:0;}<br> html,body{width:100%;height:100%;}<br> #div1{width:100px;height:100px;background-color:#660099;position:absolute;left:0px;top:0px;}<br>

javascript正则匹配从左往右等于从右往左的字符串

问题描述 javascript正则匹配从左往右等于从右往左的字符串 如果需要匹配一个从左往右读,或者从右往左读都一样的文本该如何匹配? 例如: abcdefgfedcba 解决方案 alert(/^(.?)(.?)(.?)(.?)(.?)(.?)(.?)(.?)(.?).?987654321$/.test('abcdefgfedcba')) http://blog.csdn.net/wusuopubupt/article/details/17507401

JavaScript使用RegExp进行正则匹配的方法_javascript技巧

本文实例讲述了JavaScript使用RegExp进行正则匹配的方法.分享给大家供大家参考.具体实现方法如下: <script type="text/javascript"> var matchedTimes = 0; //Match one d followed by one or more b's followed by one d //Remember matched b's and the following d //Ignore case myRe = new R

javascript的正则匹配方法学习_javascript技巧

javascript中正则匹配有3个方法,match,exec,test.这些方法都跟字符串和RegExp对象有关,但使用场景不一样,容易混淆.match是字符串的一个方法,接收一个RegExp对象做为参数,其他的是RegExp对象的方法,接收一个字符串参数. var str = 'abcdef12ab34cd56ef'; var patt = new RegExp('ab'); //主意是非全局匹配 var ret_test = patt.test(str); console.log(ret_

javascript中数组是如何求最大值

 数组如何求最大值,想必很多的朋友都不会吧,本文为大家介绍下javascript中数组是如何求最大值的,感兴趣的朋友不要错过 代码如下: <html>  <head>  <title>数组的最大值的获取</title>    <script>  //定义数组  var arr = [1,4,3,9,5,0,-1,7,22];    //最大值的下标,先假定为第一个元素的下标  var index = 0;  for(var x = 0; x &l

java程序报错,求大神找bug

问题描述 java程序报错,求大神找bug package arraysofobjects; import java.util.Scanner; public class arraysofobjects { public static void main(String[] args) { Scanner input=new Scanner(System.in); students[] stu=new students[4]; String name; int grade; for(int i=0

求个正则匹配数字区间格式,如(10,100),中间一定为一个逗号,括号可以死[和(

问题描述 求个正则匹配数字区间格式,如(10,100),中间一定为一个逗号,括号可以死[和( 求个正则匹配数字区间格式,如(10,100),中间一定为一个逗号,括号可以是[和(,数字不用定死位数和大小 解决方案 下面的只验证格式,没有验证第一位一定要小于第二位 ^(d+,d+)|[d+,d+]$ 解决方案二: var r = s.match(/((|[)d+,d+()|])/); console.info(r[1]); console.info(r[2]); 解决方案三: 可以考虑使用栈,遇见"