在正则表达式方面,小弟是一菜鸟中的菜鸟,刚学正则式时,有一个地方很让我费解,我们写正则表达式时,有些表达式要有开始和结束,即以/^开始,以$结束,如:var regx=/^[\u4e00-\u9fa5]{2,4}$/g
但是很多时候又不要开始和结束,如:var regx=/a\r\nbc/;
我就真搞不明白了,到时什么情况下要有以/^开始以$结束,什么情况下不需要这些开始和结束望正则高手指点

解决方案 »

  1.   


    alert(/\d+/.test('123'));
    alert(/^\d+/.test('a123'));自己动手试试就知道到底有何区别了
      

  2.   

    写错了……alert(/\d+/.test('a123'));
    alert(/^\d+/.test('a123'));
      

  3.   

    ^ 匹配字符串开始的位置,不匹配任何字符 
    $ 匹配字符串结束的位置,不匹配任何字符
     
    不是以/^开始,是以^开始var reg = /expression/igm;
    其中的//只是js中声明正则的语法而已
    至于什么时候使用看需求,比如验证整体的规则,那就要用^和$来限定整个字符串
    而如果是提取其中的一部分,或是替换其中的一部分,就不一定需要^和$了
    这种问题还是不要拿出来问吧,连最基本的元字符和语法规则都不懂,只是拿其中的一些来讲没什么意义,即使这个给你讲明白了,你不懂正则,那还是不懂正则
    所以最好是先找些相关的资料看下,自己做些练习,有了一定的了解和基础以后,再有针对性的蝗问,这样收获才大
      

  4.   

    为什么 是看你自己的需要http://www.renrousousuo.com/tools/regex_debug.html
    你自己可以测试一下
      

  5.   

    ^带表开头,$带表结尾 ,单词的开头和结尾   Hello world!   ^world$ 就会精确匹配了.
      

  6.   

    http://download.csdn.net/source/2844387
      

  7.   

    LZ正则网页看少了随便一个只能是XXX开头,XXX结尾的正则表达式中都可以看到“/^”、“&/”
      

  8.   

    用开始和结束符,多用于对input的值或或者某段字符串的完整匹配例如输入字串A,使用正则B,如果要对A进行完整(从头到尾)的匹配,B就用开始结束符
    但如果只需要匹配A里面的部分匹配,B就按需要选择使用开始或结束符,或者两个都不用