zoukankan      html  css  js  c++  java
  • js计算textarea输入文字的长度

    前言

    日常开发过程中,有些时候我们想使用textarea,然后限制输入的长度,在textarea末尾显示剩余可输入的字节数。

    如下图:

     解决方法:

    常用的有三种方法:

    1、通过判断charCodeAt,区分字母与中文 ,然后计算字符串的长度。

    2、通过使用charCodeAt 和 0xff00区分中文与英文,这个代码量稍微减少一些。

    3、使用正则,把输入的中文,转成英文。1个中文等于两个英文,最后计算英文个数。

    代码如下: 

    方法一:

    复制代码
    var obj = {};
    obj.GetLength = function(str) {
        // <summary>获得字符串实际长度,中文2,英文1</summary>
        // <param name="str">要获得长度的字符串</param>
        var realLength = 0, len = str.length, charCode = -1;
        for (var i = 0; i < len; i++) {
            charCode = str.charCodeAt(i);
            if (charCode >= 0 && charCode <= 128) 
                  realLength += 1;
            else
                  realLength += 2;
        }
        return realLength;
    };
    
    alert(obj.GetLength('这是中文aaaaaaa'));        
    复制代码

    方法二(更简洁的方法):

    复制代码
    var length = str.length; // str是输入的字符串
    var blen = 0;
    for (i=0; i<length; i++) {
      if ((str.charCodeAt(i) & 0xff00) != 0) { // 如果是英文,返回0
        blen ++;
      }
      blen ++;
    }
    复制代码

    方法三(更更简洁的方法):

    var obj = {};
    obj.GetLength = function(str) { // str是输入的字符串
        return str.replace(/[u0391-uFFE5]/g,"aa").length;   // 先把中文替换成两个字节的英文,再计算长度
    };  
    alert(obj.GetLength('这是中文aaaaaa'));

    TIP:

    charCodeAt()方法的作用是:返回指定位置的字符的 Unicode 编码
  • 相关阅读:
    ubuntu新的配置
    今天下午鼓捣android-studio的一些经验
    Sublime Text 3
    学Web前端开发,选择培训学校是关键--青岛思途
    让HTML5游戏来的更猛烈些吧!--青岛思途
    Java架构师和开发者实用工具推荐
    Java培训班4个月有用吗?
    Java培训机构如何选择才能避免被骗?
    Java跟JavaScript两者间的关系和区别
    浅谈java中的四个核心概念--思途青岛
  • 原文地址:https://www.cnblogs.com/cczlovexw/p/10821031.html
Copyright © 2011-2022 走看看