$$$$$$$$$$$ 求一个javascript的正则表达式,能过滤掉所有能造成javascript运行出错的代码 $$$$$$$$$$$$ 求一个javascript的正则表达式,能过滤掉所有能造成javascript运行出错的代码,谢谢。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如将“<”替换成“<”等等。应该有不少要替换,包括符号和保留字。希望替换后,能将文本内容为一个JS代码的文本,也能完全显示出来。 甚至替换后,能用JS在浏览器中显示JS代码本身:function FilterScripts(content) { var sz = ""; sz = content.replace(/<script(.|\n)*\/script>\s*/ig, ""); sz = sz.replace( /<[^>]+/ig, function($0){return $0.replace(/\s*on\w+=[^ ]+/ig, "")}); return sz; } 能造成javascript运行出错的代码?太难了吧。一个除数为0就可以造成javascript运行出错。还有其它浏览器本身的错误也可以以造成javascript运行出错。你把代码写规范一点就好了。 这种事情怎么可能做到?比如alert.innerHTML="1245" 是错误的,这不仅仅是正侧表达式不能做到,可能出现错误的情况比正确的情况还多,理论上应该也无法判断的吧! 原来这么难么?我只是希望下面document.getElementById("to").innerHTML=文本内容 这样的情况下不会出错。不是替换掉敏感符号和敏感字符可以做到的么?那如何处理才比较科学呢? 比如用JS调用远程的整篇技术文档,连同其中出示的JS代码都可以正常显示,这好像有很多网站是这样做的吧? 原意是用JS处理XML,发现XML结点中的文本字符不能有"<"号,并且在读出时替换也不行。<ggg><heading>(这里是需要读取的很长的)文本内容</heading></ggg> 写个DEMO 你自己修改下吧<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Untitled Document</title><script id="aa" LANGUAGE="javascript" type="text/javascript" >function response() { document.getElementById("t").innerHTML = document.getElementById("test").value.replace(/([<>])/g,function(t){ if(t == "<") { return "<" } else { return ">" } });// }</script> </head> <body> <input type="text" id="test" /><input type="button" value="submit" onclick="response()" /> <div id="t"> </div> </body></html> 在服务器发布含有javascript脚本网页,客户端使用不正常 (新手提问)层拖动问题?老报错!郁闷死了! 如何用javascript制作动态滤镜呀!! 发送MAIL问题 已取得xml的内容字符串,如何把字符串中的特殊字符转换成相应的实体? 【疑问】如何用Js读取2级Cookie 如何用变量代替对象名字 多个栏目,怎么调用一个选项卡模板? [求助]鼠标放到图片上时,图片停止滚动 请问使屏幕某一区域“上滚”、“下滚”的脚本? 如何在网页中强行嵌入其它网页 Ext 布局的问题,好人们帮帮忙呀!
应该有不少要替换,包括符号和保留字。
希望替换后,能将文本内容为一个JS代码的文本,也能完全显示出来。
function FilterScripts(content)
{
var sz = "";
sz = content.replace(/<script(.|\n)*\/script>\s*/ig, "");
sz = sz.replace( /<[^>]+/ig, function($0){return $0.replace(/\s*on\w+=[^ ]+/ig, "")});
return sz;
}
一个除数为0就可以造成javascript运行出错。
还有其它浏览器本身的错误也可以以造成javascript运行出错。
你把代码写规范一点就好了。
比如alert.innerHTML="1245" 是错误的,这不仅仅是正侧表达式不能做到,可能出现错误的情况比正确的情况还多,理论上应该也无法判断的吧!
我只是希望下面document.getElementById("to").innerHTML=文本内容 这样的情况下不会出错。
不是替换掉敏感符号和敏感字符可以做到的么?那如何处理才比较科学呢?
<heading>(这里是需要读取的很长的)文本内容</heading>
</ggg>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Untitled Document</title>
<script id="aa" LANGUAGE="javascript" type="text/javascript" >
function response() {
document.getElementById("t").innerHTML = document.getElementById("test").value.replace(/([<>])/g,function(t){
if(t == "<") {
return "<"
} else {
return ">"
}
});
//
}</script> </head>
<body>
<input type="text" id="test" /><input type="button" value="submit" onclick="response()" />
<div id="t">
</div>
</body>
</html>