情况是这样的。现在需要使用js在整个页面中使用正则去匹配出特定的标签。该标签有多个。且不存在id等属性,是自己写的标签。具体实例如下:
<s>
<type>logo</type>
<src></src>
<hight></hight>
</s>
====================
<s>
<type>logo</type>
<src></src>
<hight></hight>
</s>
====================
<s>
<type>logo</type>
<src></src>
<hight></hight>
</s>
一开始我写的表达式是:<s>.*<\/s>这样当然有个很明显的问题,它会从第一个“<s>”开视匹配到最后一个“<\s>”。
然后我又试了<s>[^m][^a][^r][^k][^s]*<\/s>杯具的发现这里面不能出现m a r k s这几个字母了……晕!到现在问题是怎么匹配出单个的s呢?我的思路是去匹配s的开始和结束,并且是开始和结束之间不包括字符串s。但是js的正则里怎么去排除匹配字符串呢?
我试了
<s>(?!s)*</s>结果啥也不出来了…… 现在求助啊,谁能告诉我怎么解决这个问题啊?
<s>
<type>logo</type>
<src></src>
<hight></hight>
</s>
====================
<s>
<type>logo</type>
<src></src>
<hight></hight>
</s>
====================
<s>
<type>logo</type>
<src></src>
<hight></hight>
</s>
一开始我写的表达式是:<s>.*<\/s>这样当然有个很明显的问题,它会从第一个“<s>”开视匹配到最后一个“<\s>”。
然后我又试了<s>[^m][^a][^r][^k][^s]*<\/s>杯具的发现这里面不能出现m a r k s这几个字母了……晕!到现在问题是怎么匹配出单个的s呢?我的思路是去匹配s的开始和结束,并且是开始和结束之间不包括字符串s。但是js的正则里怎么去排除匹配字符串呢?
我试了
<s>(?!s)*</s>结果啥也不出来了…… 现在求助啊,谁能告诉我怎么解决这个问题啊?
/<s>(?:(?!<\/?s>)[\s\S])*<\/s>/gi
alert(str.replace(/<s>(?:(?!<\/?s>)[\s\S])*<\/s>/gi, ""));
你可以把()内的换成别的标签名