posts - 6,comments - 7,trackbacks - 0

          ????
          ??? 做項目時自己寫一段js給大家。關于文本限制字數的問題,在實際開發中經常用到;主要問題出現在對中文的限制,因為大多數據庫都是按字節限制,而web中屬性maxlength限制個數,非字節數,因此遇到中文就會出問題。下面代碼就解決關于限制字節數的校驗問題;只要將此下代碼保存到一個js文件中并引入到校驗的頁面中,便可使用!同時希望大家給與大力支持和寶貴意見,本人會在今后閑余之際,發表更多的好文章,謝謝!!

          ?

          /*
          ?value:?值;
          ?byteLength:數據庫字節長度
          ?title:字段中文名稱
          ?attribute:屬性名稱
          ?使用方法說明:

          添加?(1)?onkeyup="limitLength(this.value,100,'名稱','name')"
          ??????????(2)??id="name"?或【struts標簽】styleId="name"
          ?注意:id名稱和?attribute屬性名稱要一樣
          ?????
          ?例子:<textarea??name="explain"?id="explain"?onkeyup="limitLength(value,5,'語義說明','explain')"?>?

          ?或

          <input?type="text"???name="explain"??id="explain"?onkeyup="limitLength(value,5,'語義說明','explain')"?>

          */



          function ?limitLength(value,?byteLength,?title,?attribute)?{
          ???????
          var ?newvalue? = ?value.replace( / [ ^ \x00 - \xff] / g,? " ** " );
          ???????
          var ?length? = ?newvalue.length;
          ?
          ???????
          // 當填寫的字節數小于設置的字節數
          ?????? if ?(length? * ? 1 ? <= byteLength? * ? 1 ){
          ????????????
          return ;
          ??????}
          ??????
          var ?limitDate? = ?newvalue.substr( 0 ,?byteLength);
          ??????
          var ?count? = ? 0 ;
          ??????
          var ?limitvalue? = ? "" ;
          ?????
          for ?( var ?i? = ? 0 ;?i? < ?limitDate.length;?i ++ )?{
          ?????????????
          var ?flat? = ?limitDate.substr(i,? 1 );
          ????????????
          if ?(flat? == ? " * " )?{
          ??????????????????count
          ++ ;
          ????????????}
          ?????}
          ?????
          var ?size? = ? 0 ;
          ?????
          var ?istar? = ?newvalue.substr(byteLength? * ? 1 ? - ? 1 ,? 1 ); // 校驗點是否為“×”
          ??
          ????
          // if?基點是×;?判斷在基點內有×為偶數還是奇數?
          ????? if ?(count? % ? 2 ? == ? 0 )?{
          ??????????????
          // 當為偶數時
          ????????????size? = ?count? / ? 2 ? + ?(byteLength? * ? 1 ? - ?count);
          ????????????limitvalue?
          = ?value.substr( 0 ,?size);
          ????}?
          else ?{
          ????????????
          // 當為奇數時
          ????????????size? = ?(count? - ? 1 )? / ? 2 ? + ?(byteLength? * ? 1 ? - ?count);
          ????????????limitvalue?
          = ?value.substr( 0 ,?size);
          ????}
          ???alert(title?
          + ? " 最大輸入 " ? + ?byteLength? + ? " 個字節(相當于 " + byteLength? / 2 + " 個漢字)! " );
          ???document.getElementById(attribute).value?
          = ?limitvalue;
          ???
          return ;
          }

          posted on 2006-09-11 12:53 扁豆 閱讀(527) 評論(2)  編輯  收藏

          FeedBack:
          # re: 經典限制文本字節數javaScript代碼!
          2006-09-28 19:14 | 流氓
          不錯,此方法比較好用!  回復  更多評論
            
          # re: 經典限制文本字節數javaScript代碼!
          2006-12-01 11:16 | allen[匿名]
          已經用在項目中啦!多謝  回復  更多評論
            

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


          網站導航:
           
          主站蜘蛛池模板: 唐山市| 福建省| 广水市| 永顺县| 缙云县| 巫溪县| 巴林左旗| 醴陵市| 淳化县| 色达县| 丁青县| 南城县| 保亭| 广水市| 胶南市| 汾西县| 师宗县| 滨海县| 石泉县| 郎溪县| 盐亭县| 本溪市| 渑池县| 怀仁县| 五河县| 江口县| 汉中市| 穆棱市| 天峨县| 绿春县| 黑水县| 贡嘎县| 梁平县| 丹棱县| 梧州市| 祁东县| 海宁市| 盘山县| 论坛| 盐边县| 南安市|