//字符串
var str='<img src="https://fhfgjfdh/2.gif" alt="/::B">hello<img src="https://idufid/emotion/3.gif" alt="/::|">';
//正则
var preg=/<img(.+)alt="/ig;
//替换为空
str=str.replace(preg,'');
我想得到的结果是/::B">hello/::|">
,但现在结果为/::|"
,要怎么修改呢?
//字符串
var str='<img src="https://fhfgjfdh/2.gif" alt="/::B">hello<img src="https://idufid/emotion/3.gif" alt="/::|">';
//正则
var preg=/<img(.+)alt="/ig;
//替换为空
str=str.replace(preg,'');
我想得到的结果是/::B">hello/::|">
,但现在结果为/::|"
,要怎么修改呢?
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
将正则表达式改为如下即可:
可知,我仅仅只是在+后面添加了一个?。
正则表达式匹配的时候默认采用的是『贪婪模式』,这时(.+)会从第一个<img一直匹配到第二个alt=";
添加问号之后,正则表达式匹配模式由『贪婪模式』变为『非贪婪模式』,这时(.+)会从第一个<img匹配到第一个alt=";g表示『全局匹配』,因此(.+)还会匹配第二个<img到第二个alt="。