我們通常用到限制輸入框如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;
}
}
}
}
如果有更好辦法的小伙伴,希望能不吝賜教哦~~~~嘻嘻