str = str.replace(/\[img=(\d{1,3})[x|\,](\d{1,3})\]\s*([^\[\<\r\n]+?)\s*\[\/img\]/ig, '<img width="$1" height="$2" src="$3" border="0" alt="" />');
以上正则中小弟不明白$1,$2,$3都是批配表达式中的哪部分,并且其意思是?

解决方案 »

  1.   

    $num指向正则表达式中用()括起来的部分:
    $1:\d{1,3}
    $2:\d{1,3}
    $3:[^\[\<\r\n]+?
      

  2.   

    $n
    n指第n个括号.另外,要注意的一点就是如果括号有嵌套
    (()())
    数括号的时候是数左括号
      

  3.   


    str = str.replace(/\[img=(\d{1,3})[x|\,](\d{1,3})\]\s*([^\[\<\r\n]+?)\s*\[\/img\]/ig, '<img width="$1" height="$2" src="$3" border="0" alt="" />');
    那上面这个表达式批配什么样的字符串?
      

  4.   

    上面就是做了一件事把非html语法改成html语法
      

  5.   

    我用了好久js也没敢学正则,看着那一堆一堆符号就吓人。
    后来公司java组组长说,其实照着手册写写就可以了,没什么难的。
    我试着写了那么几个,确实也就是那么回事。
    规则还是很好记的。
    多写几个就好了。
      

  6.   

      var reg = /\";
      str = str.replace(reg, '<img width="$1" height="$2" src="$3" border="0" alt="" />');
      alert(str)
      

  7.   

    给你一个学习正则表达式的网址:http://www.cnblogs.com/deerchao/archive/2006/08/24/zhengzhe30fengzhongjiaocheng.html
    或许对你是有帮助的。