posts - 6,comments - 7,trackbacks - 0

          ????
          ??? 做項(xiàng)目時(shí)自己寫(xiě)一段js給大家。關(guān)于文本限制字?jǐn)?shù)的問(wèn)題,在實(shí)際開(kāi)發(fā)中經(jīng)常用到;主要問(wèn)題出現(xiàn)在對(duì)中文的限制,因?yàn)榇蠖鄶?shù)據(jù)庫(kù)都是按字節(jié)限制,而web中屬性maxlength限制個(gè)數(shù),非字節(jié)數(shù),因此遇到中文就會(huì)出問(wèn)題。下面代碼就解決關(guān)于限制字節(jié)數(shù)的校驗(yàn)問(wèn)題;只要將此下代碼保存到一個(gè)js文件中并引入到校驗(yàn)的頁(yè)面中,便可使用!同時(shí)希望大家給與大力支持和寶貴意見(jiàn),本人會(huì)在今后閑余之際,發(fā)表更多的好文章,謝謝!!

          ?

          /*
          ?value:?值;
          ?byteLength:數(shù)據(jù)庫(kù)字節(jié)長(zhǎng)度
          ?title:字段中文名稱(chēng)
          ?attribute:屬性名稱(chēng)
          ?使用方法說(shuō)明:

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

          ?或

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

          */



          function ?limitLength(value,?byteLength,?title,?attribute)?{
          ???????
          var ?newvalue? = ?value.replace( / [ ^ \x00 - \xff] / g,? " ** " );
          ???????
          var ?length? = ?newvalue.length;
          ?
          ???????
          // 當(dāng)填寫(xiě)的字節(jié)數(shù)小于設(shè)置的字節(jié)數(shù)
          ?????? 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 ); // 校驗(yàn)點(diǎn)是否為“×”
          ??
          ????
          // if?基點(diǎn)是×;?判斷在基點(diǎn)內(nèi)有×為偶數(shù)還是奇數(shù)?
          ????? if ?(count? % ? 2 ? == ? 0 )?{
          ??????????????
          // 當(dāng)為偶數(shù)時(shí)
          ????????????size? = ?count? / ? 2 ? + ?(byteLength? * ? 1 ? - ?count);
          ????????????limitvalue?
          = ?value.substr( 0 ,?size);
          ????}?
          else ?{
          ????????????
          // 當(dāng)為奇數(shù)時(shí)
          ????????????size? = ?(count? - ? 1 )? / ? 2 ? + ?(byteLength? * ? 1 ? - ?count);
          ????????????limitvalue?
          = ?value.substr( 0 ,?size);
          ????}
          ???alert(title?
          + ? " 最大輸入 " ? + ?byteLength? + ? " 個(gè)字節(jié)(相當(dāng)于 " + byteLength? / 2 + " 個(gè)漢字)! " );
          ???document.getElementById(attribute).value?
          = ?limitvalue;
          ???
          return ;
          }

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

          FeedBack:
          # re: 經(jīng)典限制文本字節(jié)數(shù)javaScript代碼!
          2006-09-28 19:14 | 流氓
          不錯(cuò),此方法比較好用!  回復(fù)  更多評(píng)論
            
          # re: 經(jīng)典限制文本字節(jié)數(shù)javaScript代碼!
          2006-12-01 11:16 | allen[匿名]
          已經(jīng)用在項(xiàng)目中啦!多謝  回復(fù)  更多評(píng)論
            

          只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 花垣县| 辽中县| 翁源县| 门源| 山东省| 临泽县| 江孜县| 万全县| 芷江| 贞丰县| 临潭县| 宝兴县| 安庆市| 长治市| 水富县| 昭平县| 彭阳县| 那坡县| 岱山县| 新竹市| 十堰市| 庆城县| 交口县| 上蔡县| 莎车县| 吉木萨尔县| 剑河县| 彝良县| 八宿县| 仁怀市| 岚皋县| 榆林市| 龙陵县| 东安县| 濮阳县| 沾化县| 武城县| 武邑县| 临城县| 洛隆县| 临邑县|