职业IT人-IT人生活圈

 找回密码
 成为会员
搜索
查看: 976|回复: 0

限制文本字节数的JS源代码程序

[复制链接]
木头爱小猪 发表于 2007-8-10 09:45 | 显示全部楼层 |阅读模式
  做项目时自己写一段js给大家。关于文本限制字数的问题,在实际开发中经常用到;主要问题出现在对中文的限制,下面代码就解决关于限制字节数的校验问题;只要将此下代码保存到一个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,&#39;语义说明&#39;,&#39;explain&#39;)\" >

<input type=\"text\"  name=\"explain\" id=\"explain\" onkeyup=\"limitLength(value,5,&#39;语义说明&#39;,&#39;explain&#39;)\" >
*/
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;
}
您需要登录后才可以回帖 登录 | 成为会员

本版积分规则

QQ|手机版|小黑屋|网站帮助|职业IT人-IT人生活圈 ( 粤ICP备12053935号-1 )|网站地图
本站文章版权归原发布者及原出处所有。内容为作者个人观点,并不代表本站赞同其观点和对其真实性负责,本站只提供参考并不构成任何投资及应用建议。本站是信息平台,网站上部分文章为转载,并不用于任何商业目的,我们已经尽可能的对作者和来源进行了通告,但是能力有限或疏忽造成漏登,请及时联系我们,我们将根据著作权人的要求立即更正或者删除有关内容。

GMT+8, 2024-4-29 22:52 , Processed in 0.113470 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表