字符串:
<a href="javascript:void(0)"; onclick="window.location="mailto:"+this.innerHTML.split("").reverse().join("");" style="direction:rtl;unicode-bidi:bidi-override;">link</a>
目标:匹配onclick
属性中的所有引号(6):
window.location="mailto:"+this.innerHTML.split("").reverse().join("");
谢谢!
答案 0 :(得分:2)
如果你只是在寻找能够做到这一点的正则表达式,那么/"/g
会不会正常工作?所以,在JavaScript ......
var str = 'window.location="mailto:"+this.innerHTML.split("").reverse().join("");';
// you can get this string from anywhere.
str.match(/"/g);
// returns an array of quotes whose length is equal to the # of quote characters found.
这不会有用,但你还没有说出你想用它做什么。
或者,如果您希望获取引号中的所有内容,请使用正则表达式/"(.*?)"/g
。
说明:
已经提供了一个捕获组来执行有用的操作。
答案 1 :(得分:0)
假设您正在尝试修复错误,因为有人忘了逃避JS中的引号,请尝试使用此正则表达式:
(onclick=")(.*?)(?<!\\)"(.*?)(?<!\\)"
并替换为
$1$2\\"$3\\"
这将替换未转义的下一组双引号,并根据需要重复。
由于这是无效的HTML 和,您尝试使用正则表达式对其进行解析,这可能是您能够更好地替换所述文本的最佳方式。