我现在有个字符串 是这样的"<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}o\:* 400;}中间省略一万字</style><![endif]-->";
我想取<!--到-->之间的字符 用正则表达式 请问怎么取

解决方案 »

  1.   


    var str = "<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}o\:* 400;}中间省略一万字</style><![endif]-->";

    // 法1
    alert( str.split('<!--[if !mso]>')[1].split('<![endif]-->')[0] );

    // 法2
    var re = /^<!--\[if !mso\]>(.*?)<!\[endif\]-->$/;
    alert( str.match(re)[1] );
    参考下
      

  2.   

    用纯正则不太好实现
    var r=/<!--((.|\n)*?)-->/g,
    t='<!--abc-->dsfsfdfgd<!--def-->',
    result=t.match(r);
    for(var i=0;result[i]!=undefined;i++){
        result[i]=result[i].replace('<!--','').replace('-->','');
    }
    result为结果数组
      

  3.   

    function test() {
                var content = "<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}o\:* 400;}中间省略一万字</style><![endif]-->";
                var reg = /<!--([\s\S]+)-->/;
                content = content.replace(reg, "$1");
                alert(content);
            }