`
zhangyaochun
  • 浏览: 2613247 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

js-字符串长度的验证

阅读更多

今天再一次的遇到了这样一个问题-----关于字符串的字节长度。我想很多表单多会有这样的需求,比如前段我在做baidu输入法官网上传词库和皮肤的时候,因为输入项有字节限制。

 

当然很多网络上早就处理了,今天只是简单地总结记录一下。

 

 

//删除左右两端空格
//不同于$.trim()
function trim(str){
 return str.replace(/(^\s*)|(\s*$)/g, "");
}; 
//计算字符串字节长度
//关于这个去空格的需求具体可以变动
function getByteLength(str){
     var len=0,
           i,
          arr = trim(str).split(""); //如果没有需求就改为arr = str.split("");
     for(i=0;i<arr.length;i++){
          if(arr[i].charCodeAt(0)<299){
               len ++;
         }else{
              len +=2;
        }
    }
  return len;
}

console.log(getByteLength("w的长度是duo少"));  //14
console.log(getByteLength(" w的长度是duo少 "));   //14

 

 

ps:很多有后端学习经验或者数据库经验的人或者对字符集比较有研究的人会提出:汉字不一定是算2个字节,好吧,这边我们只是约定一下,汉字算两个字节 

 

后来写lib库的时候看到tangram是这样处理的

 

 

/*
*getByteLength  get the source byte length in gbk*
*@function*
*@param {String} source*
*@remak {Number}*
*@remark in gbk length more than 127 is thought two byte*
*/
ZYC.string.getByteLength = function(source){
     return String(source).replace(/[^\x00-\xff]/g,"ci").length;   //ci是可以换到 当成2个字节的就行
};
 

 

ps:这个版本是没有去空格的,在编码为gbk的情况下去计算的。

 

这边随便提一下常见的字符集(来源于http://baike.baidu.com/view/1204863.htm)

 

  • ASCII
ASCII码于1968年提出,用于在不同计算机硬件和软件系统中实现数据传输标准化,在大多数的小型机和全部的个人计算机都使用此码。ASCII码划分为两个集合:128个字符的标准ASCII码和附加的128个字符的扩充和ASCII码。比较EBCDIC。其中95个字符可以显示。另外33个不可以显示。 标准ASCII码为7位,扩充为8位。

基本的 ASCII 字符集共有 128 个字符,其中有 96 个可打印字符,包括常用的字母、数字、标点符号等,另外还有 32 个控制字符。标准 ASCII 码使用 7 个二进位对字符进行编码,对应的 ISO 标准为 ISO646 标准。

字母和数字的 ASCII 码的记忆是非常简单的。我们只要记住了一个字母或数字的 ASCII 码(例如记住 A 为 65 , 0 的 ASCII 码为 48 ),知道相应的大小写字母之间差 32 ,就可以推算出其余字母、数字的 ASCII 码。

  • GB2312
GB2312编码通行于我国内地;新加坡等地也采用此编码。几乎所有的中文系统和国际化的软件都支持GB 2312。GB 2312是一个简体中文字符集,由6763个常用汉字682个全角的非汉字字符组成。其中汉字根据使用的频率分为两级。一级汉字3755个,二级汉字3008个。

  • UTF-8
UTF-8可以根据不同的符号自动选择编码的长短。比如英文字母可以只用1个字节就够了。

更多链接:http://www.douban.com/group/topic/6922168/       (学习交流用)

 

1
3
分享到:
评论

相关推荐

    string-fn-字符串操作库

    10. **计算字符串长度**:除了常规的`length`属性,库可能还提供了考虑Unicode字符的长度计算方法。 在实际项目中,"string-fn"库可以极大地提升开发效率,减少手动处理字符串的繁琐工作。通过引入这个库,开发者...

    MySQL 基础 - 字符串函数.md

    - `str`是要测量长度的字符串。 **示例代码**: ```sql SELECT LENGTH('MySQL String Functions') AS Result; ``` **输出结果**: ``` Result ------------- 23 ``` **应用场景**: - 验证用户输入的长度,确保它...

    javascript 字符串的验证基础篇之JS(适合新手)

    在本篇文章中,我们将深入探讨JavaScript字符串验证的基础知识,帮助你更好地编写高质量的网站代码。 一、创建与操作字符串 1. 创建字符串:可以通过双引号或单引号来创建字符串,例如:"Hello, World!" 或 'Hello...

    JavaScript 中关于字符串字节长度的计算比较(含汉字字符串)

    JavaScript 中关于字符串字节长度的计算比较(含汉字字符串) 可用于验证字符串长度。效率比较高。

    js如何判断输入字符串长度

    js判断输入字符串长度(汉字算两个字符,字母数字算一个) 文本输入时,由于数据库表字段长度限制会导致提交失败,因此想到了此方法验证。 废话不多说上代码: &lt;html&gt; &lt;head&gt; &lt;title&gt;js判断输入...

    JavaScript_字符串验证.zip

    在这个“JavaScript_字符串验证.zip”压缩包中,我们有两个文件:`说明.txt`和`validator.js_master.zip`,它们可能包含了关于JavaScript字符串验证的详细信息。 `说明.txt`可能提供了对整个压缩包内容的简要介绍,...

    javaScript中的字符串操作

    3. **获取字符串的长度**:可以通过`.length`属性来获取字符串的长度,例如:`myStr.length`。 4. **获取字符串中的某个字符**:可以使用`.charAt()`方法来获取字符串中特定位置的字符,例如:`myStr.charAt(0)` 将...

    使用js验证填写的字符是否符合长度

    本文将深入解析一个使用JavaScript进行字符串长度验证的实例,旨在帮助开发者更好地理解如何在用户输入时即时检查其合法性,从而避免无效或不符合规则的数据提交至服务器,提高应用的健壮性和效率。 ### 使用...

    验证js处理字符串函数

    例如,`"hello".length`将返回5,这在验证字符串长度时非常有用。 2. `charAt(index)`:此方法返回指定位置的字符。例如,`"hello".charAt(0)`将返回`"h"`,用于获取或检查字符串中的特定字符。 3. `indexOf...

    以太坊solidity字符串拼接实现

    不过,在Solidity编程语言中,由于其特定的类型系统和内存管理机制,没有像其他高级编程语言(如JavaScript或Python)中那样直接支持字符串拼接运算符。因此,开发者需要了解如何在Solidity中实现字符串拼接,这通常...

    验证字符长度

    对于每个匹配到的字符,将被替换为两个星号 `"**"`,这样就可以通过 `.length` 属性来正确计算包含中文字符的字符串长度。 ```javascript var length = obj.value.replace(/[^\x00-\xff]/g, "**").length; ``` ...

    JavaScript获取中英文混合字符串长度的方法示例

    在JavaScript中,处理中英文混合的字符串长度是一个常见的需求,特别是在网页表单验证或文本处理时。由于中文字符和英文字符在计算机内部表示的方式不同,一个英文字符通常占用1个字节,而一个中文字符则占用2个字节...

    validator轻量级的JavaScript表单验证字符串验证没有依赖支持UMD3kb

    例如,你可以验证邮箱格式是否正确,手机号码是否合法,密码强度是否足够,或者字符串长度是否在指定范围内。 2. **表单验证**:除了基本的字符串验证,`validator.js`还允许开发者轻松地对整个表单进行验证。通过...

    jQuery 实现字符串加密处理

    总的来说,通过引入`md5.js`和`sha1.js`,并在jQuery环境中调用它们提供的函数,我们可以方便地对字符串进行加密处理,以增强数据的安全性。然而,需要注意的是,由于MD5和SHA1的碰撞攻击风险,现代密码存储通常更...

    获取同时含有数字、大写字母、小写字母的随机字符串

    raise ValueError("字符串长度至少为1") return ''.join(random.choice(all_chars) for _ in range(length)) # 使用方法 random_str = generate_random_string(10) print(random_str) # 正则验证 import re def...

    javascript中的字符串函数.doc

    例如,字符串长度这一属性可以通过`.length`属性获取,无需额外的方法调用。 **示例:** ```javascript let str = "Hello"; console.log(str.length); // 输出 5 ``` #### 二、常用字符串方法解析 ##### 1. `index...

    检查字符串是否为有效的字符串

    4. **使用第三方库**:很多编程语言有专门处理字符串验证的库,例如Java中的Apache Commons Lang和JavaScript的validator.js。 5. **工具辅助**:开发过程中,可以借助代码编辑器、IDE或在线工具进行实时验证。例如...

    获取一个字符串的散列hash

    在JavaScript中,获取一个字符串的散列值可以帮助我们实现这些功能。 在给定的标题和描述中,“获取一个字符串的散列hash”指的是利用特定算法将一个字符串转换为其对应的散列值。这个过程对于JavaScript开发者来说...

    javascript经典特效---字符的加密解密.rar

    例如,可能有一个简单的异或加密函数的示例,展示了如何将字符串转化为二进制数组,进行异或操作后再转回字符串。 此外,文件可能还会讨论安全性问题,比如JavaScript中的加密操作受限于浏览器的安全策略,不能处理...

Global site tag (gtag.js) - Google Analytics