用JS判断输入的最大数(一个汉字为二个单位、一个英文字母为一个单位)

转载 2011年01月18日 10:04:00
虽然HTML的文本框自代一个验证最大值的函数maxlength,但这家伙不顶用,一个汉字和一个英文字母都是一个单位,这样显然不对。以下是解决方案
/////////////////////////////////////////////////////////////////////
//   判断长度是否合格
//
// 引数 s   传入的字符串
//           n   限制的长度n以下
//
// 返回值 false   NG
//           true    OK
/////////////////////////////////////////////////////////////////////
function WidthCheck(s, n){
var w = 0;
for (var i=0; i<s.length; i++) {
   var c = s.charCodeAt(i);
   //单字节加1
   if ((c >= 0x0001 && c <= 0x007e) || (0xff60<=c && c<=0xff9f)) {
    w++;
   }
   else {
    w+=2;
   }
}
if (w > n) {
   return false;
}
return true;
}
 
以下是我自己衍生出的验证输入个数的东东:
<input type="text" size="16" name="num" id="num" onChange="WidthCheck(this,5);"/>

function WidthCheck(str, maxLen){  

var w = 0;  
var tempCount = 0;
for (var i=0; i<str.value.length; i++) {  
   var c = str.value.charCodeAt(i);  
   //单字节加1  
   if ((c >= 0x0001 && c <= 0x007e) || (0xff60<=c && c<=0xff9f)) {  
    w++;  
  
   }else {    
    w+=2;  
  
   }  
    
   if (w > maxLen) {  
   str.value = str.value.substr(0,i);
   break;
   }    
}  
}

出处http://youaremyrice.blog.51cto.com/293941/58316

js 限制输入框的字节数,中文两个字节,英文字母一个字节

也许在网上有很多类似的文章,但是这里大家应该知道,js里面,中文和字母的长度都是1,但是数据库不知道呀,数据库很多都是按照字节来的,所以,控制输入框的字节数看来比长度限制更为重要。 提出问题: 1、限...
  • wzgdjm
  • wzgdjm
  • 2016年03月14日 17:03
  • 1659

Java实现匹配一个给定输入的字符串中汉字、数字、英文字母、空格数量

学习Java依旧在路上,内容越多就要钻的越深入才能记得越深刻理解的越到位,这是我自己最深的感悟。今天利用Java写了一个小程序用来判断指定的字符串中各种各类型的字符包括:汉字、数字、英文字母、空格的数...

输入一个字符串,分别统计出包含的英文字母、数字、空格和其他字符的个数

/** * */ package testString; import java.util.Scanner; /** *@author: Administrator *@date: 20...

得到一个汉字的拼音第一个字母,如果是一个英文字母则直接返回大写字母

/// /// 得到一个汉字的拼音第一个字母,如果是一个英文字母则直接返回大写字母 /// /// 单个汉字 ...

js正则表达式限制文本框只能输入数字,小数点,英文字母,汉字等各类代码

1.       var reg = /^(/w|[/u4E00-/u9FA5])*$/; if(arr=username.match(reg)) {    ti=1;    return ture;...

js正则表达式限制文本框只能输入数字,小数点,英文字母,汉字等各类代码

1.文本框只能输入数字代码(小数点也不能输入) keyup="this.value=this.value.replace(/\D/g,'')" onafterpaste="this.value=th...

java中求一个字符串中大小写字母及非英文字母的个数

//第一种思路: //将字符串中的每个字符取出,然后用循环对每一个字符进行比较,用三个个变量记录相应的字符数       //第二种比较傻的思路:先定义出大小写的26个字母,然后根据...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用JS判断输入的最大数(一个汉字为二个单位、一个英文字母为一个单位)
举报原因:
原因补充:

(最多只允许输入30个字)