工作需要,暫時要告別javascript 。趁這段時間不是特別忙,將一些javascript 技術總結下。

          /**
           * @brief  擴展原生字符串 
           * @author hechangmin@gmail.com
           
          */

          var StringEx = 

              
          /**
               * @brief 去除字符串前后空格
               
          */
              trim : 
          function()
              {
                  
          return this.replace(/(^\s*)|(\s*$)/g, "");
              },
              
              
          /**
               * @brief 去除左邊空格
               
          */
              ltrim : 
          function()
              { 
                  
          return this.replace(/(^\s*)/g, ""); 
              },
              
              
          /**
               * @brief 去除右邊空格
               
          */
              rtrim : 
          function()
              { 
                  
          return this.replace(/(\s*$)/g, "");      
              },
              
              
          /**
               * @brief 避免XSS 攻擊
               
          */
              avoidXSS : 
          function()
              {
                  
          var strTemp = this.replace(/&/g, "&");
                  strTemp 
          = strTemp.replace(/</g, "&lt;");
                  strTemp 
          = strTemp.replace(/>/g, "&gt;");
                  strTemp 
          = strTemp.replace(/\"/g, "&quot;");
                  return strTemp;    
              } ,
              
              /**
               * @brief 獲取字符串的字節長度 漢字默認雙字節
               */
              byteLength : function()
              {
                    return this.replace(/[^\x00-\xff]/g,
          "**").length;
              },
              
              /**
               * @brief     除去HTML標簽
               * @example    <div id=
          "test1">aaaa</div>  =>  aaaa 
               */
              removeHTML : function()
              {
                  return this.replace(/<\/?[^>]+>/gi, '');
              },
              
              /**
               * @brief      格式化字符串
               * @example 
          "<div>{0}</div>{1}".format(txt0,txt1)
               */
              format : function()
              {
                  var args = [];
                  
                  for (var i = 0, il = arguments.length; i < il; i++)
                  {
                      args.push(arguments[i]);
                  }
                  
                  return this.replace(/\{(\d+)\}/g, function(m, i)
                  {
                      return args[i];
                  });
              },
              
              /**
               * @brief 字符串轉數字
               */
              toInt : function() 
              {
                  return Math.floor(this);
              }    
          }


          for (var it in StringEx) 
          {
              String.prototype[it] = StringEx[it];
          }

          test:

              var strTest = "   -{0}這里是擴展原生字符串test{1}- ";
                      
                      alert(strTest.length);                 
          // output : 26
                      alert(strTest.ltrim().length);      // 23
                      alert(strTest.rtrim().length);      // 25
                      
                      alert(strTest.byteLength());        
          // 36
                      
                      alert(strTest.format(
          "abc","def")); //   -abc這里是擴展原生字符串testdef- 
                      
                      
          var strNumber = "89989";
                      
                      alert(
          typeof strNumber.toInt());    // number
                      
                      
          var domTest = document.getElementById("test1").outerHTML;
                      
                      alert(domTest);
                      
                      alert(domTest.avoidXSS());
                      alert(domTest.removeHTML());


          可能 avoidXSS 部分由于blog 有 xss 處理,所以看不全。建議下載源代碼和 demo 試試。

          下載 string.js 及  demo 


          posted on 2010-03-23 20:31 -274°C 閱讀(3765) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
          博客園   IT新聞   Chat2DB   C++博客   博問  
           

          常用鏈接

          留言簿(21)

          隨筆分類(265)

          隨筆檔案(242)

          相冊

          JAVA網站

          關注的Blog

          搜索

          •  

          積分與排名

          • 積分 - 916114
          • 排名 - 40

          最新評論

          主站蜘蛛池模板: 沂南县| 白河县| 象州县| 天等县| 长治市| 仁化县| 云梦县| 清水河县| 如东县| 志丹县| 铅山县| 泰宁县| 康马县| 寿阳县| 临桂县| 西乡县| 翁牛特旗| 新津县| 安塞县| 酒泉市| 若羌县| 澎湖县| 山东省| 诸城市| 潮安县| 九龙城区| 锡林浩特市| 施甸县| 临洮县| 汶川县| 丹棱县| 湘乡市| 济南市| 句容市| 慈溪市| 和平区| 简阳市| 包头市| 蓝田县| 靖宇县| 西乌|