代码如下:var reg = new RegExp("(http://www.qidian.com/BookReader/)(\\d+),(\\d+).aspx","gi");
var url = "http://www.qidian.com/BookReader/10133,222.aspx";
var rep = url.replace(reg,"$3$2$1");
alert(rep);结果在安卓手机上的显示结果竟然就是“$3$2$1”。求解。
或者说有什么情况,会导致JS中的$不能用。
十分感谢啊。正则javascript$手机

解决方案 »

  1.   

    $3$2$1 ,分组1 组2 组3
    对应  (http://www.qidian.com/BookReader/) , (\\d+), (\\d+)
    如果没有 对应的分组就直接输出 $n
      

  2.   

    这个我明白啊。但是输出就是有问题啊。
    我alert了下RegExp.$1,然后是空,难道是写的有问题?
      

  3.   

    这样运行看看什么结果var reg = new RegExp("(http://www.qidian.com/BookReader/)(\\d+),(\\d+).aspx","gi");
    var url = "http://www.qidian.com/BookReader/10133,222.aspx";
    alert(reg);// 看下正则对不对
    alert( reg.test(url) )
    alert(RegExp.$1);
      

  4.   

    或者说有什么情况,会导致JS中的$不能用。
    使用 noConflict() 方法为 jQuery 变量规定新的名称:
    var jq=$.noConflict();
    这时$就会失效,可以用jq替代$.
      

  5.   

    正则应该是没问题的,这是个移动OA开发的问题。在电脑模拟和苹果手机上都没问题,就安卓手机有问题。
    所以想问下,是不是这样写的格式有问题,不太正规,或者JS版本等其他因素影响?
      

  6.   

    reg:/(http://www.qidian.com/BookReader/)(\d+),(\d+).aspx/
    reg.test(url):true
    alert(RegExp.$1) : null
      

  7.   

    正则应该是没问题的,这是个移动OA开发的问题。在电脑模拟和苹果手机上都没问题,就安卓手机有问题。
    所以想问下,是不是这样写的格式有问题,不太正规,或者JS版本等其他因素影响?
    可能是浏览器的问题不是系统的问题,安卓上也可装不同的浏览器
    你就单独运行上面那段代码是什么结果
      

  8.   

    noConflict不支持难道是JS版本问题。。
      

  9.   

    正则应该是没问题的,这是个移动OA开发的问题。在电脑模拟和苹果手机上都没问题,就安卓手机有问题。
    所以想问下,是不是这样写的格式有问题,不太正规,或者JS版本等其他因素影响?
    可能是浏览器的问题不是系统的问题,安卓上也可装不同的浏览器
    你就单独运行上面那段代码是什么结果reg:/(http://www.qidian.com/BookReader/)(\d+),(\d+).aspx/
    reg.test(url):true
    alert(RegExp.$1) : null
      

  10.   

    reg:/(http://www.qidian.com/BookReader/)(\d+),(\d+).aspx/
    reg.test(url):true
    alert(RegExp.$1) : null

    这样试试alert( "123".replace(/.(2)./,'$1') ); // 试一下是不是不能用$1
    var reg = new RegExp("(http://www.qidian.com/BookReader/)(\\d+),(\\d+).aspx","gi");
    var url = "http://www.qidian.com/BookReader/10133,222.aspx";
    var rep = url.replace(reg,function(_,a,b,c){return c+b+a } );
    alert(rep)
      

  11.   

    reg:/(http://www.qidian.com/BookReader/)(\d+),(\d+).aspx/
    reg.test(url):true
    alert(RegExp.$1) : null

    这样试试alert( "123".replace(/.(2)./,'$1') ); // 试一下是不是不能用$1
    var reg = new RegExp("(http://www.qidian.com/BookReader/)(\\d+),(\\d+).aspx","gi");
    var url = "http://www.qidian.com/BookReader/10133,222.aspx";
    var rep = url.replace(reg,function(_,a,b,c){return c+b+a } );
    alert(rep)
    $1
    function(p0,p1,p2,p3){[bytecode]}
      

  12.   

    输出这结果,真没看懂document.write( window.navigator.userAgent ) //看下什么浏览器
    document.write("".replace+"") //replace方法没有被替换
      

  13.   

    new RegExp("(http:\/\/www.qidian.com\/BookReader\/)(\\d+),(\\d+).aspx","gi"); 
    这样试试
      

  14.   

    正则应该是没问题的,这是个移动OA开发的问题。在电脑模拟和苹果手机上都没问题,就安卓手机有问题。
    所以想问下,是不是这样写的格式有问题,不太正规,或者JS版本等其他因素影响?
    可能是浏览器的问题不是系统的问题,安卓上也可装不同的浏览器
    你就单独运行上面那段代码是什么结果问题已解决,开发环境的问题。谢谢啦