用js正则表达式如何去掉代码串中的注释行?
某字串内容是一段js代码,里面有单行也有多行注释。
现想用js正则表达式去掉里面的注释行。所用表达式如下:
/\/\*.*\*\//g
发现多行注释时此表达式无效。请高人指点。
问题点数:100、回复次数:5Top
1 楼treeroot(旗鲁特)回复于 2006-06-03 16:32:39 得分 0
/\/\*(.|\n)*\*\//g
Top
2 楼fangzhe()回复于 2006-06-03 20:04:17 得分 0
/(\/\*)\/?(([^\*]\/)|[^\/])*(\*\/)/gTop
3 楼hbhbhbhbhb1021(天外水火(我要多努力))回复于 2006-06-05 13:15:45 得分 0
<script language=javascript>
/*
去掉注释
*/
var str=document.getElementsByTagName("script")[0].innerHTML //asdasd
var re=/((\/\*[\s\S]*?\*\/)|(\/\/.*$))/mg //注释
alert(str.replace(re,""))
//注释
/*
注释
*/
</script>Top
4 楼BlueDestiny(Design Life - never-online.net)回复于 2006-06-05 14:24:10 得分 0
<SCRIPT LANGUAGE="JavaScript" id="sd">
<!--
/**************a********************
*********/
//-->
</SCRIPT>
<SCRIPT LANGUAGE="JavaScript">
<!--
/* replace comment */
function rs(sn) {
var a = document.getElementsByTagName("SCRIPT");
var r = /\/\*[\s|\S]*\*\/$/mg;
for (var i=0; i<a.length; i++) {
if (a[i].id==sn || sn=="*") {
b = a[i].innerHTML.replace(r, "");
alert(b)
}
}
}
rs("sd")
rs("*")
//-->
</SCRIPT>Top
5 楼dexterfar()回复于 2007-03-01 16:35:27 得分 0
都不行啊.
如果中间出现句这样的话:a="aaaaaaaa//bbbbbbbb";
你怎么办.
还有a=1//zzzzzzzzzfdaf/*这种Top




