javascript - js里正则表达式和replace()的问题?

查看:80
本文介绍了javascript - js里正则表达式和replace()的问题?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

//字符串
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 preg=/<img(.+?)alt="/ig

可知,我仅仅只是在+后面添加了一个?

正则表达式匹配的时候默认采用的是『贪婪模式』,这时(.+)会从第一个<img一直匹配到第二个alt="

添加问号之后,正则表达式匹配模式由『贪婪模式』变为『非贪婪模式』,这时(.+)会从第一个<img匹配到第一个alt=";g表示『全局匹配』,因此(.+)还会匹配第二个<img到第二个alt="

这篇关于javascript - js里正则表达式和replace()的问题?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆