js验证不能输入汉字怎么解决?

 我来答
百度网友fdf66634
推荐于2019-11-03 · TA获得超过1.3万个赞
知道小有建树答主
回答量:10
采纳率:7%
帮助的人:1.2万
展开全部

1、用正则表达式判断,非常简单,两条代码就可实现,具体如下:

2、用 Unicode 字符范围判断

在 Unicode 字符中,因为汉字的编码都是大于255,所以只要编码大于255的都是汉字,代码如下:

3、当要使用以上两个方法时,十分简单,直接调用即可,具体使用实例如下:

  1. /**
  2.   计算指定输入框中字符串的长度
  3.   @param eleInput 指定的输入框或输入框的id, required
  4.   @param maxLength 期望的字符串最大长度, optional, 未指定时,默认取输入框的maxLength属性,未指定maxLength属性时,指定为100字符长度
  5.   @param nativeCharSize,一个汉字的长度,optional,因数据库编码不同,汉字所占用的长度也不同,比如UTF-8编码中,汉字占用3个字符的长度,而GBK编码中汉字则是2个字符的长度。未制定时,默认按2个字符长度计算
  6.   @return 返回计算结果
  7.   */
  8.   function computeLength(eleInput, maxLength, nativeCharSize) {
  9.       var nativeCharRegexp = /[\u4E00-\u9FFF]/;
  10.       var string, char, length = 0;
  11.       var ele = (typeof eleInput == 'string') ? document.getElementById(eleInput) : eleInput;
  12.     if(maxLength == undefined) {
  13.         maxLength = ele.maxLength || 100;
  14.       }
  15.        
  16.       if(nativeCharSize == undefined) {
  17.           nativeCharSize = 2;
  18.       }
  19.        
  20.       string = (ele.value || '').split('');
  21.        
  22.       for(var i = 0, count = string.length; i < count; i ++) {
  23.           char = string[i];
  24.           if(nativeCharRegexp.test(char)) {
  25.               length += nativeCharSize;
  26.           } else {
  27.               length ++;
  28.           }
  29.       }
  30.        
  31.       return length;
  32.   }
  33.   
  34.   function checkLength(target) {
  35.     var maxLength = 100; // 这是允许输入的最大数
  36.         var targetLength = computeLength(target, maxLength, 2); // 这个是已输入的字符
  37.     var leftLength =maxLength - targetLength;
  38.         document.getElementById("size").innerHTML = leftLength; // 这里的size就是需要变换数字地方的Id
  39.     }
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式