一个文本框里面的HTML 里面有文本和 img 标签
例如
<img src="../../static/images/express/4.gif" alt="[em_4]">好好研究研究这个方案真详细<img src="../../static/images/express/4.gif" alt="[em_4]">
要过滤成这样的
[em_4]好好研究研究这个方案真详细[em_4]
昨天查了好长时间都没查到, 正则不太行, 求助, 谢谢了
一个文本框里面的HTML 里面有文本和 img 标签
例如
<img src="../../static/images/express/4.gif" alt="[em_4]">好好研究研究这个方案真详细<img src="../../static/images/express/4.gif" alt="[em_4]">
要过滤成这样的
[em_4]好好研究研究这个方案真详细[em_4]
昨天查了好长时间都没查到, 正则不太行, 求助, 谢谢了
看看这个符合要求吗? 给个赞吧
var str = '<img src="../../static/images/express/4.gif" alt="[em_4]">好好研究研究这个方案真详细<img src="../../static/images/express/4.gif" alt="[em_4]">';
var result = str.replace(/^.+alt="(.*)">(.*)<.*alt="(.*)".*$/, '$1$2$3');
console.log(result);
正则表达式主要用来处理字符串,你这个既然是DOM元素,为什么要用正则表达式呢?
可以使用JQuery:
var str = $('img:eq(0)').attr('alt') + $('img:eq(0)'). text() + $('img:eq(1)').attr('alt')
__
题主给的是字符串,所以可以通过如下正则式取值:
reg1 = /\[.*?\]/g
reg2 = />.*?</g
var str = '<img src="../../static/images/express/4.gif" alt="[em_4]">好好研究研究这个方案真详细<img src="../../static/images/express/4.gif" alt="[em_4]">'
var text = str.match(reg2)[0]
var result = str.match(reg1)[0] + text.substring(1, text.length - 1) + str.match(reg1)[1]
console.log(result)
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
受到 @ymsd 的启发, 用了下面的方式, 不过不是一个正则解决的, 但也达到了需求
结果