Javascript 使用regexp在某些html元素中转义引号?

Javascript 使用regexp在某些html元素中转义引号?,javascript,regex,Javascript,Regex,我倾向于使用ajax和脚本 但是,ajax结果超出了我的控制,我需要一个regexp来转义引号('and'),因为脚本将包含onload属性 这是我迄今为止的工作: clean_txt = clean_txt.replace( /<script[^>]*>([\n\s\S]+?)<\/script>/img, "<img src='1px.gif?d=$1' alt='' onload='new Function(\"$1\")();' /&

我倾向于使用ajax和脚本

但是,ajax结果超出了我的控制,我需要一个regexp来转义引号('and'),因为脚本将包含onload属性

这是我迄今为止的工作:

clean_txt = clean_txt.replace(
    /<script[^>]*>([\n\s\S]+?)<\/script>/img, 
    "<img src='1px.gif?d=$1' alt='' onload='new Function(\"$1\")();' />"
);
clean_txt=clean_txt.replace(
/]*>([\n\s\s]+?)/img,
""
);

是否有人拥有最终的regexp,例如在$1中转义引号?

用regex解析html会毁掉你的灵魂

我真的建议使用更简单的方法,如:

clean_txt.replace("'","\\'").replace('"', '\\"');

当然,这将用
\'
替换每个
'
替换为
\”
。如果您不想这样做,请阅读更多信息。

结果表明,可以通过在onload函数上转义包装器引号来解决这个问题

clean_txt = clean_txt.replace(/<script[^>]*>([\n\s\S]+?)<\/script>/img, 
            "<img src='1px.gif?d=$1' alt='' onload=\'$1\;\' />");
clean\u txt=clean\u txt.replace(/]*>([\n\s\s]+?)/img,
"");
有点丑陋和怪异,但我可以接受。通过这样做,浏览器似乎可以绕过自己的问题


我已经在Opera 10.6、Firefox 3.6、Safari 5和Chrome 7中进行了测试。

这个
无法保持!哈哈,完全错过了那个。书签。不幸的是,我得到的结果不够可靠,无法作为XML进行评估。但无论如何,谢谢。这不会取代每个报价。它只会取代每个报价类型中的第一个。
'aaa'。replace('a','b')==='baa'
。您需要使用regexp replace:
'aaa'。replace(/a/g,'b')==='bbb'
,并可能将它们替换为HTML实体,而不是反斜杠转义符。