现在做模仿做语法着色有如下语名:
// aaaa bbbbb现在给注释形如// 加前景色:Green
str = str.replace(/\/\/(\S+)/gi,"<font style='color:Green'>//$s</font>");结果:// aaaa bbbbb这样没问题。但是现在如果现在语句变成 // aaaa public bbbb 由于public已经被着色了,再用以上的正则,替换 public 不会变成Green色。于是我写了下面的下则替换:
str = str.replace(/\/\/(\S+)/gi,function($1)
{
var s1=$1;
s1 = s1.replace(/\<font style='color:(\w+)'>(\w+)\<\/font\>/,"$1");
return "<font style='color:Yellow'>"+s1+"</font>";
});红色的地方不对,想不出来怎么写。。求教高手!!!
// aaaa bbbbb现在给注释形如// 加前景色:Green
str = str.replace(/\/\/(\S+)/gi,"<font style='color:Green'>//$s</font>");结果:// aaaa bbbbb这样没问题。但是现在如果现在语句变成 // aaaa public bbbb 由于public已经被着色了,再用以上的正则,替换 public 不会变成Green色。于是我写了下面的下则替换:
str = str.replace(/\/\/(\S+)/gi,function($1)
{
var s1=$1;
s1 = s1.replace(/\<font style='color:(\w+)'>(\w+)\<\/font\>/,"$1");
return "<font style='color:Yellow'>"+s1+"</font>";
});红色的地方不对,想不出来怎么写。。求教高手!!!
解决方案 »
- 请问我在上传asp。net网站时如果有人访问如何把所有页面请求都指定到一个页面?
- GridView的PageIndexChanged事件
- jquect问题
- |zyciis| 在验证控件RegularExpressionValidator的属性ValidationExpression他的值转取HTML中显示的时候是用哪一个方法改换的 谢谢
- 冒昧问下
- 请问有谁知道2005MEDC的ppt在哪里可以下载(100分)?
- 用datlist显示数据,并在模板列中插入radiobutton,textbox等控件
- 在ASP.net里call Bapi返回的中文是乱码,但在SAP里调试可以正确显示中文
- 昨天八月十五,我要求200分即送源码,但是有朋友告诉,网管删除了他们的贴子,造成其信誉分被减,对此,我表示强列抗议
- 关于页面刷新的问题???
- ******************高难度问题,高手来******************
- 关于foreach泛型的问题
//str = str.replace(/\/\*(\S*)\*\//gim,"<font style='color:Green'>/*$1*/</font>");这句也不对,找不到哪里错了。。
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>用正则实现语法着色</title>
</head>
<script type="text/javascript">
/*
// Regex Example in JavaScript
// Rainsome Studio
// [email protected]
// 2009-02-05 in Shanghai
*/
<!--//
//用正则实现语法着色
String.prototype.SetColor = function()
{
var _str_ = encodeURIComponent(this);
var regex = /^(.+)$/g;
var _str1_ = _str_.replace(regex,"<span style = 'color:#f00;'>$1</span>");
return decodeURIComponent(_str1_);
}
function encolor(obj)
{
var text = obj.value;
var str ="着色结果:"
text = text.SetColor();
var result = document.getElementById("result");
result.innerHTML = str + text ;
} //-->
</script>
<body onmousedown="whichElement(event)">
<div id = "divtest" ><b>用正则实现语法着色(红色).</b></div>
<input name="tagStr1" type="text" class="tag_input" id="tagStr1" size="50" maxlength="50" onblur = "encolor(this)"/>
<div id = "result"></div>
</body>
</html>
{
var s1=$1;
s1 = s1.replace(/\ <font style='color:(\w+)'>(\w+)\ <\/font\>/,"$1");
return " <font style='color:Yellow'>"+s1+" </font>";
}); 我想知道,嵌套替换的时候,下划线的地方怎么写
*{font-size:12px;}
</style>
<body><div id="code">
<pre>
private void aaaa()
{
Response.Write("aaaaa");
}// private void privateBB()
// {
// var a=1;
// }/*
private void ccccc()
{
var a="aaa";//****/****/
/*
var b=1;
*/
}
*/
</pre>
</div>
</body>
<script>
var div = document.getElementById("code");
var str=div.innerHTML;var RulReg = {};
RulReg.KEWORD = /\b(private|public|protected|void)+\b/gi;
RulReg.DBLCLEAR = /([\/]{2,})([^\n]+)/gi;
RulReg.MULTICLEAR = /(\/[\*]+(?:.|\n|\r)+[\*]+\/)/gi;
RulReg.FONT = /<font[^>]+>([^<]+)<\/font>/gi;
RulReg.QUTOR = /"([^"]+)"/gi;//关键字
str = str.replace(/\b(private|public|protected|void)+\b/gi,"<font style='color:blue'>$1</font>");
//字符串
str = str.replace(/("[^"]+")/gi,"<font style='color:red'>$1</font>");
//注释部分 "//"
str = str.replace(RulReg.DBLCLEAR,function(){
var s = arguments[0];
s = s.replace(RulReg.FONT,"$1");
return s;
});
str = str.replace(RulReg.DBLCLEAR,"$1<font style='color:green'>$2</font>");
//注释部分 "/* */"
str = str.replace(RulReg.MULTICLEAR,function(){
var s = arguments[0];
s = s.replace(RulReg.FONT,"$1");
return s;
});
str = str.replace(RulReg.MULTICLEAR,"<font style='color:green'>$1</font>");
div.innerHTML = str;</script>