<script type="text/javascript">
function cpl(val) {
return val.replace(/<img(?:title=(?:'([^']*)'|"([^"]*)"|([^ ]*))|'[^']*'|"[^"]*"|[^>'"])+>|<(?:'[^']*'|"[^"]*"|[^>'"]+)+>/ig, "$1$2$3");
//半法这个相对很严紧所以要长点。。"
};
alert(cpl("<IMG src='title=' onclick='里面随便写' title=\"asdfghjkl\">123456"));
</script>
function cpl(val) {
return val.replace(/<img(?:title=(?:'([^']*)'|"([^"]*)"|([^ ]*))|'[^']*'|"[^"]*"|[^>'"])+>|<(?:'[^']*'|"[^"]*"|[^>'"]+)+>/ig, "$1$2$3");
//半法这个相对很严紧所以要长点。。"
};
alert(cpl("<IMG src='title=' onclick='里面随便写' title=\"asdfghjkl\">123456"));
</script>
var str="<IMG title=\"asdfghjkl" \">123456";
var rs=str.replace(regx,"${title}");请问这样写为什么有错误? (regx,"${title}") 与 "$1$2$3") 有什么区别 ?
你这里没有设置非贪婪。这样有可出现多个img的时候发生错误。。
另外(?<title>[^'""]*)这个属于平衡组,JS不支持平衡组。。
还有<(?!img
既然是或关系。就是说前面的总是会优先匹配这样你后面写非img这种东西的时候会把
不带title的img楼掉
我那个很严谨的说。不然可以写的很简单严谨是指连这种变态的情况都考虑在内。除非你的IMG标记是错误的。。
alert(cpl("<IMG src='title=' onclick=\"this.title='wc'\" title=\"asdfghjkl\">123456"));
这种情况。一般的非贪婪匹配的式子就会出现问题。。
还有。。你那种[^>]的情况如果它的属性里有'>'就会结束匹配,这样会造成错误。