`
zhangyaochun
  • 浏览: 2569150 次
  • 性别: 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
分享到:
评论

相关推荐

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

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

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

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

    js常用验证函数库 提供常用的验证函数,如日期、身份证、数字等,另外提供了一些java中有但js中没有提供的函数,如trim(),取中文字符串长度等

    提供常用的验证函数,如日期、身份证、数字等,另外提供了一些java中有但js中没有提供的函数,如trim(),取中文字符串长度等

    JS判断输入字符串长度实例代码(汉字算两个字符,字母数字算一个)

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

    JavaScript对象验证库js-validator.zip

    对于字符串来说,验证域的字符串长度必须等于给定长度。对于数字来说,验证域的值必须等于给定值。string验证域必须为字符串。url验证域必须为URL地址。当前不支持含有非英文(中文等)字符的地址。测试文件入口./...

    用JavaScript计算在UTF-8下存储字符串占用字节数

    JavaScript的String对象有length属性,但是这个计算的是字符数,不是字节数(问题总是翻来覆去的,记得当年玩Delphi的时候,还得写程序计算字符串的字符数,因为Delphi中String的length是字节数…)。偷懒一点的办法...

    js验证框架

    tt.LV(字符串长度) tt.CV(与其它字段或值比较) 直接通过tt.vf获取的验证器 req(非空) num(数字) int(整数) email(邮箱) ip(ipv4) postcode(邮政编码) tel(电话号码) idcard(身份证号码) 深入演示使用...

    js验证,javascript

    1:js 字符串长度限制、判断字符长度、js限制输入、限制不能输入、textarea 长度限制 2.:js判断汉字、判断是否汉字 、只能输入汉字 3:js判断是否输入英文、只能输入英文 4:js只能输入数字,判断数字、验证数字、检测...

    js验证表单大全

    1:js 字符串长度限制、判断字符长度 、js限制输入、限制不能输入、textarea 长度限制 2.:js判断汉字、判断是否汉字 、只能输入汉字 3:js判断是否输入英文、只能输入英文 4:js只能输入数字,判断数字、验证数字、...

    js验证表单 js验证表单

    1:js 字符串长度限制、判断字符长度 、js限制输入、限制不能输入、textarea 长度限制 2.:js判断汉字、判断是否汉字 、只能输入汉字 3:js判断是否输入英文、只能输入英文 4:js只能输入数字,判断数字、验证数字、检测...

    js表单验证控制代码大全

    1:js 字符串长度限制、判断字符长度 、js限制输入、限制不能输入、textarea 长度限制 2.:js判断汉字、判断是否汉字 、只能输入汉字 3:js判断是否输入英文、只能输入英文 4:js只能输入数字,判断数字、验证数字、检测...

    javascript 正则表达式验证集合

    收集于网上各种javascript的正则表达式验证,如邮箱,ip,字符,数据和各种组合的验证。 只能输入由26个英文字母组成的字符串:“^[A-Za-z]+$” 只能输入由26个大写英文字母组成的字符串:“^[A-Z]+$” 只能输入由...

    javascript表单验证大全

    1:js 字符串长度限制、判断字符长度 、js限制输入、限制不能输入、textarea 长度限制 2.:js判断汉字、判断是否汉字 、只能输入汉字 3:js判断是否输入英文、只能输入英文 4:js只能输入数字,判断数字、验证数字、...

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

    只是一个小小的实例,希望可以给各位朋友带来帮助。

    ajax实例 js验证

    js验证用户名 字符串长度 比较验证 手机号码验证

    js表单验证代码全集.docx

    1:js 字符串长度限制、判断字符长度、js限制输入、限制不能输入、textarea 长度限制 2.:js判断汉字、判断是否汉字 、只能输入汉字 3:js判断是否输入英文、只能输入英文 4:js只能输入数字,判断数字、验证数字、检测...

    js表单验证 表单验证类 整合

    Validator是基于JavaScript技术的伪静态类和对象的自定义属性,可以对网页中的表单项输入进行相应的验证,允许同一页面中同时验证多个表单,熟悉接口之后也可以对特定的表单项甚至仅仅是某个字符串进行验证。...

    表单验证大全.docx

    1:js 字符串长度限制、判断字符长度、js限制输入、限制不能输入、textarea 长度限制 2.:js判断汉字、判断是否汉字 、只能输入汉字 3:js判断是否输入英文、只能输入英文 4:js只能输入数字,判断数字、验证数字、...

    精通正则表达式基于.NET ASP PHP JSP JavaScript

    获取字符串长度.asp 第13章(/14/) Matches集合与Macth对象.asp 指定忽略大小写.asp 获取Matches集合.asp 进行正则匹配替换.asp 进行正则匹配检验.asp ...

    jquery+validate.js+验证规则文件

    14 rangelength:[5,10] 输入长度必须介于 5 和 10 之间的字符串(汉字算一个字符)。 15 range:[5,10] 输入值必须介于 5 和 10 之间。 16 max:5 输入值不能大于 5。 17 min:10 输入值不能小于 10

Global site tag (gtag.js) - Google Analytics