zoukankan      html  css  js  c++  java
  • 关键词高亮

    从网上找了个正则 

    <html>    
        <head>
            <style>body {font:14px/18px Consolas;}</style>
        </head>
        <body>
    <script id="code">
    //读入当前代码
    var code="'xX' 12 function if Object null true /* ab
    c */ ";
    //修正换行的浏览器差异,去掉头尾的换行和空格
    code=code.replace(/
    |[
    ]/g,"
    ").replace(/^s+|s+$/g,"");
    //开始主匹配
    code=code.replace(/(//.*|/*[Ss]+?*/)|((["'])(?:\.|[^\
    ])*?3)|(break|continue|do|for|in|function|if|else|return|switch|this|throw|try|catch|finally|var|while|with|case|new|typeof|instance|delete|void)|(Object|Array|String|Number|Boolean|Function|RegExp|Date|Math|window|document|navigator|location)|(true|false)|(null|undefined|NaN)|(?:[^Wd]|$)[$w]*|(0[xX][0-9a-fA-F]+|d+(?:.d+)?(?:[eE]d+)?)|(?:[^)]}]|^)(/(?!*)(?:\.|[^\/
    ])+?/[gim]*)|[.s]/g,function(){
      var a,l,i,s;
      a=arguments;
      //循环匹配到的位置
      for(i=1;i<=9;i++)
        if(s=a[i]){
            s=htmlEncode(s);
            //每个获取匹配的位置都着上不同的颜色
            switch(i){
              case 1://注释
              return s.fontcolor("#998877").italics();
              case 2:case 3://字符串
              return s.fontcolor("#AA5544");
              case 4://关键词
              return s.fontcolor("#333388");
              case 5://内置对象
              return s.fontcolor("#5555AA");
              case 6://布尔值
              return s.fontcolor("#DD6600");
              case 7://空值
              return s.fontcolor("#BB4433");
              case 8://数字
              return s.fontcolor("#CC3322");
              case 9://正则表达式
              //这个比较特殊,匹配到的和获取的有些不同
              //匹配的时候,前面有个非获取匹配,所以我们要保留非获取匹配的部分
              return htmlEncode(a[0]).replace(s,s.fontcolor("#33AA33"));
            };
        };
      //没有获取匹配就直接转义输出
      return htmlEncode(a[0]);
    });
    
    //输出结果
    document.write(code);
    
    //HTML的转义函数
    function htmlEncode(e){
      var i,s;
      for(i in s={
        "&":/&/g,"'":/'/g,
        "<":/</g,">":/>/g,"<br/>":/
    /g,
        " ":/ /g,"  ":/	/g
      })e=e.replace(s[i],i);
      return e;
    };
    </script>
    
    </body>
    </html>
    s.fontcolor("#CC3322"); 可以用
    s.css({"color" : "#CC3322"});
  • 相关阅读:
    对于石家庄铁道大学软件个人总结
    Android Studio安装
    典型用户模板和用户场景模板
    java+jsp+sql server实现网页版四则运算.
    四则运算一
    学习进度
    构建之法阅读笔记(一)
    记账本小程序7天开发记录(第一天)
    javabean+jsp+servlet+jdbc从软件安装到开发实例
    编写一个文件分割工具,能把一个大文件分割成多个小的文件。并且能再次把它们合并起来得到完整的文件。
  • 原文地址:https://www.cnblogs.com/zyjzz/p/7061521.html
Copyright © 2011-2022 走看看