求网页中的文本高亮显示

phoebuswei 2009-08-02 03:47:28
效果就像csdn中的“
”“

显示在html中的代码高亮显示
我自己弄了一个,非常的“土”还不稳定
看了看代码主要是替换出来关键字然后生成出来
但似乎类和字符串的颜色没办法
求个解决思路,方法
——————————————————
给出我的“土”方法,我的“土”方法遇到空格<br>什么的就不好用,就连刷新有时也有问题
想要和vs一样的效果

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<meta http-equiv="content-type" content="text/html;charset=gb2312"/>
<script language="javascript" type="text/jscript">

function bright(key) {

var key = new Array(
'abstract', 'as', 'base', 'bool',
'break', 'byte', 'case', 'catch',
'char', 'checked', 'class', 'const',
'continue', 'decimal', 'default', 'delegate',
'do', 'double', 'else', 'enum', 'ecent', 'explicit',
'extern', 'false', 'finally', 'fixed',
'float', 'for', 'foreach', 'get', 'goto', 'if',
'implicit', 'in', 'int', 'interface',
'internal', 'is', 'lock', 'long', 'namespace',
'new', 'null', 'object', 'out', 'override',
'partial', 'private', 'protected',
'public', 'readonly', 'ref', 'return',
'sbyte', 'sealed', 'set', 'short',
'sizeof', 'stackalloc', 'static', 'struct',
'switch', 'this', 'throw', 'true', 'try', 'typeof', 'uint', 'ulong'
, 'unchecked', 'unsafe', 'ushort',
'using', 'value', 'virtual', 'volatile'
, 'volatile', 'void', 'where', 'while', 'yield')
var key2 = new Array('+', '-', '*', '/', '=', '"');
var obT = document.body.createTextRange();
for (var i = 0; i < key.length; i++) {
if (obT.findText(key[i]))
obT.pasteHTML(obT.text.fontcolor('#003399'));
}
for (var i = 0; i < key2.length; i++) {
if (obT.findText(key2[i]))
obT.pasteHTML(obT.text.fontcolor('#cc0000'));
}
}
</script>
<script>
function aa() {
alert(document.getElementById('hidd').value);
}

</script>
</head>
<body onload="bright('public');">
<div style="border-left:8px double #333333; background-color: #E8E8E8;">
publicvoid try +-=

</body>
</html>
...全文
206 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
phoebuswei 2009-08-02
  • 打赏
  • 举报
回复
你能给解释一下吗 没看明白
我也正做用span替换关键字
但字符窜的替换比较麻烦
再有就是类,String这是类吧在vs中是高亮的吧
可类要是枚举出替换就太多了
wuyq11 2009-08-02
  • 打赏
  • 举报
回复
public static string HighLightKeyWord(string s,string keyword)
{
string str=s;
System.Text.RegularExpressions.MatchCollection m = Regex.Matches(s, keyword, RegexOptions.IgnoreCase);
for (int j = 0; j < m.Count; j++)
{
str=str.Insert((m[j].Index + keyword.Length + j * 31), "</font>");
str=str.Insert((m[j].Index + j * 31), "<font color=#ff0000>"); }
}
return str;
}
或通过正则获取关键字,设置样式
参考

phoebuswei 2009-08-02
  • 打赏
  • 举报
回复
继续nnd,没想到怎么复杂
liuxibei1987 2009-08-02
  • 打赏
  • 举报
回复
有点复杂,至少比我想象中的复杂
phoebuswei 2009-08-02
  • 打赏
  • 举报
回复




62,051

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧