javascript - JS正则替换,貌似又碰到BUG了
本文介绍了javascript - JS正则替换,貌似又碰到BUG了的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
<script>
var html = '<div>'
+'<ul>'
+'<li>'
+'<a href="javascript:void(0)">111111111111111</a>'
+'</li>'
+'<li>'
+'<a href="http://baidu.com">22222222222222</a>'
+'</li>'
+'</ul>'
+'</div>';
var replaceHtml = html.replace(/<(?!a|img).*?>|style=".*?"/gi,'');
var replaceHtmlA = replaceHtml.replace(/(<a.*?>)(.*?)(<\/a>)/gi,function($0, $1, $2, $3){
//这里的函数貌似直接不执行了
console.log($0);
});
</script>
下面的是可以的
<script>
var html = '<div>'
+'<ul>'
+'<li>'
+'<a href="javascript:void(0)">111111111111111</a>'
+'</li>'
+'<li>'
+'<a href="http://baidu.com">22222222222222</a>'
+'</li>'
+'</ul>'
+'</div>';
var replaceHtmlA = html.replace(/(<a.*?>)(.*?)(<\/a>)/gi,function($0, $1, $2, $3){
//这里是可以正常输出的
console.log($0);
console.log($1);
});
</script>
是什么原因?
解决方案
var reg=/(<a.*?>)(.*?)(<\/a>)/gi;
reg.test(replaceHtml);
匹配失败了啊,上面的正则是不是写错了
这篇关于javascript - JS正则替换,貌似又碰到BUG了的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文