问答详情
源自:3-6 查找所有匹配结果

请问加括号和不加为何一样呢?

请问

/<li>.*</li>/


/<li>(.*)</li>/

加括号和不加为何一样呢?

/<li>.*</li>/匹配结果有<li>item 1</li>和<li>item 2</li>;

/<li>(.*)</li>/匹配的结果有还单独包括item1和item2,这样前后两个<li>和</li>的匹配规则是忽视了吗?



提问者:黑客与画家 2015-04-22 16:00

个回答

  • 码客菠萝
    2015-04-23 17:09:41
    已采纳

    建议看下书《精通正则表达式》,系统学习下正则表达式,整个正则的字符串会被匹配,正则内每个括号的子字符也会被匹配,

    看具体情况,有时候是匹配整体字符串有用,有时候是匹配子字符有用

    比如,我写一个获取网站协议和主机的函数

    getOrigin = function(){
        var result = window.location.origin || window.location.href.match(/^([\w]+?:\/\/[^\/]+?)\//);
         return result[1];
    }

    result 是 ["http://imooc.com/", "http://imooc.com"],我需要不带斜线的版本,就可以用括号匹配子字符串