限制輸入框的輸入的字符長度


我們通常用到限制輸入框如input 框輸入的文字長度的方法就是在dom層給input標簽加屬性minlengthmaxlength

比如這樣 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;
      }
    }

  }

}

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM