Javascript 使用regexp在某些html元素中转义引号?
我倾向于使用ajax和脚本 但是,ajax结果超出了我的控制,我需要一个regexp来转义引号('and'),因为脚本将包含onload属性 这是我迄今为止的工作: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\")();' /&
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实体,而不是反斜杠转义符。