我們通常用到限制輸入框如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;
}
}
}
}