JavaScript表单验证,输入中文时字符长度为2

获取输入框中的字符长度进行表单验证,当输入英文时字符长度就是1,当输入中文时字符长度为2。

 

字符数为4~16位,

上图:

 

一个中文抵两英文。

 

上代码

 

 1 btn.addEventListener('click',ov,false);
 2 
 3             function ov(){
 4                 var inputValue = text.value.trim();
 5                 //去掉最前最后的空格
 6                 if (countLength(inputValue) < 4 || countLength(inputValue) > 16) {
 7                     //判断长度是否在4-16之间
 8                     pro.innerHTML = '名称格式错误';
 9                     pro.className = 'pro warn';
10                     text.className = 'warn';
11                 }else{
12                     pro.innerHTML = '名称格式正确';
13                     pro.className = 'pro cor';
14                     text.className = 'cor';
15                 }
16             }
17 
18             function countLength(str){
19                 var inputLength = 0;
20                 //给一个变量来记录长度
21                 for (var i = 0; i < str.length; i++) {
22                     var countCode = str.charCodeAt(i);
23                     //返回指定位置的字符的Unicode编码
24                     //判断是不是ASCII码,Unicode码前128个字符是ASCII码
25                     if (countCode >= 0 && countCode <= 128) {
26                         inputLength ++;
27                     }else{
28                         inputLength +=2;
29                         //如果是扩展码,则一次+2
30                     }
31                 }
32                 return inputLength;
33             }

 

posted @ 2016-11-20 15:05  chigga  阅读(2367)  评论(0编辑  收藏  举报