我们通常用到限制输入框如input 框输入的文字长度的方法就是在dom层给input标签加属性minlength和maxlength

比如这样 minlength="4" maxlength="8"  就是最少4个最多8个字符

但是我们在开发的时候不单纯的只是在中文状态下的输入,还有英文状态下输入的情况,必将网站国际化嘛哈哈哈哈~~~~。

那么问题来了,中文状态下8个字符长度挺合适的,英文状态下仅仅8个字符恐怕是不行的吧。

以下为解决办法:

解决思路:中文字符是英文字符的2倍,所以当8个字符于中文来说合适的时候16个字符则对英文状态是合适的

$("#inp").on("input propertychange",function(e)
{
   checkIt("inp",16)
})
function checkIt(bind,maxNum)
{
	  var v = document.getElementById(bind).value;        	  if(v==""){return [];}

	  var len=0; //中英字符长度计数 
	  //计算
	  for(i=0;i<v.length;i++)  
	  {  
		    var c = v.charCodeAt(i);
		    if ((c >= 0x0001 && c <= 0x007e) || (0xff60 <= c && c <= 0xff9f))//英文字母状态
		    {
			      len++;
		    }     else//中文状态
		    {
			      len += 2;
		    }
		    if (len >=maxNum) 
		    {
			      if(i!= v.length-1)
			      {
				        $("#inp_name").val(v.substr(0,count))
				        break;
			      }
		    }

	  }

}

如果有更好办法的小伙伴,希望能不吝赐教哦~~~~嘻嘻