- 浏览: 2613247 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (1286)
- js-oop (2)
- js-window (10)
- js-event (19)
- js-string (37)
- js-array (27)
- js-page (4)
- js-dom (62)
- js-lang (8)
- js-number (7)
- js-platform (3)
- js-object (15)
- js-element (3)
- js-browser (7)
- js-url (6)
- js-date (10)
- css基础 (48)
- css优化 (15)
- html基础 (17)
- html标签 (19)
- js基础 (117)
- js-兼容性差异 (33)
- js引擎 (3)
- js性能 (14)
- json (6)
- jQuery源码浅析 (43)
- web mobile开发资料 (78)
- js跨域 (2)
- html5 (74)
- html5-canvas (7)
- css3 (53)
- 浏览器 (5)
- api设计学 (3)
- js-加载 (3)
- linux (37)
- 架构师 (1)
- php (2)
- self开发的脚本库--凤凰 (2)
- web应用名词 (6)
- javascript新特性翻译 (8)
- ajax (6)
- jQuery动画效果 (7)
- prototype的解读 (13)
- 优秀插件翻译 (1)
- css解决方案 (26)
- 数据库 (2)
- english daily (59)
- 浏览器内核探究 (1)
- jQuery插件介绍 (9)
- jquery基础篇 (26)
- chrome浏览器问题整理 (14)
- js选择器那些事 (3)
- 前端框架 (26)
- Firefox私有属性 (11)
- webkit私有属性集合 (17)
- 书籍推荐 (21)
- 数据结构 (1)
- 网站建设相关 (7)
- 好文翻译 (2)
- 个人作品 (3)
- kissy的解读 (4)
- css-layout(布局研究) (5)
- less研究 (1)
- YUI探究 (1)
- hash探究 (1)
- js动画 (7)
- 前端面试题 (37)
- css书写规范 (1)
- js模板引擎 (6)
- js模块化 (19)
- 编写高质量代码 (3)
- 性能探究--应用协议 (2)
- 前端图像处理 (19)
- Mac OS相关 (21)
- 正则表达式 (11)
- 离线应用相关 (0)
- 前端工具 (65)
- nodeJS (55)
- jquery优化篇 (2)
- 设计模式探究系列 (3)
- windows7 (2)
- IE10 (10)
- 微博开放平台探究 (2)
- 常用web服务接口 (1)
- 数据存储相关 (8)
- 零时文件 (2)
- jQuery Mobile (16)
- backbone (15)
- underscore (22)
- sass (11)
- android (3)
- phonegap (10)
- IE私有 (11)
- qwrap (8)
- git (14)
- chrome extensions (5)
- freemarker (11)
- angularJS (3)
- seo (2)
- markdown (3)
- css动画 (4)
- 安卓开发 (2)
- React (7)
- 活动页技术 (1)
- 网络安全 (3)
- grunt (7)
- Lo-Dash (3)
- 前端国际化 (4)
- 版本控制 (2)
- 盒模型 (4)
- 微信开发 (1)
- Mock数据工具 (1)
- sails (1)
- vim (1)
- js-color (1)
- iOS 基础 (43)
最新评论
-
jertom:
<div id="showInfo" ...
addEventListener等事件监听的参数细谈 -
乌托邦国王:
引用[u][/u]
css3动画属性系列之transform细讲移动translate -
hvang1988:
能提供附件下载吗,找不到js库,google封了访问不了
Syntaxhighlighter---代码高亮插件介绍 -
sscsacdsadcsd:
我的天 那到底是为什么function是object我看und ...
typeof func ==='function'的疑惑 -
wkjiangwk:
试了,没用,你们从不去测试。
介绍一下x-webkit-speech -------实现语音输入
今天再一次的遇到了这样一个问题-----关于字符串的字节长度。我想很多表单多会有这样的需求,比如前段我在做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/ (学习交流用)
发表评论
-
md5.js
2014-03-24 12:22 1099本文收录一个md5的lib: htt ... -
underscore.string
2014-03-17 15:24 1214underscore.string: ... -
Lo-Dash之uniqueId
2014-02-11 15:56 1142其实这个和underscore的类似: ... -
字符串版本的isNumber
2013-08-06 14:08 1342前面写过一篇《关于各大框架的isNumber ... -
把任意变量转换为字符串
2013-08-06 12:42 1387收录一个string相关的api: ... -
ES6系列之String
2013-07-30 11:43 0本文载录一些es6的String对象的新方法: ... -
一个处理 . 的方案
2013-04-01 18:16 1576场景: 我有一个需求:“ ... -
一个处理 . 的方案
2013-04-01 18:14 0场景: 我有一个需求: ... -
String的replace方法
2013-03-12 19:21 2138String对象的replace() ... -
jquery api之camelCase
2013-03-12 11:36 1219本代码取之:1.4.3版本(才开始有) ... -
underscore之uniqueId
2013-03-04 10:32 1528uniqueId _.uni ... -
js基础charCodeAt
2013-01-28 14:42 1664以下内容来自w3school,个人作简单积累记录: ... -
字符串times化
2012-11-30 17:44 1394问题:把一个指定的字符串按照指定的个数进行复制输出! ... -
如何获取文件的后缀
2012-10-19 13:54 1275其实很多场合中我们都会有这种需求,对文件后缀进行判断,这边给出 ... -
String的lastIndexOf
2012-10-18 21:15 1156lastIndexOf -- ... -
判断是否是css文件
2012-10-10 15:04 1359此代码片段来自seajs var IS_CS ... -
判断字符串最后一位是否是#
2012-10-09 21:24 2379api的用途:判断字符串最后一位是否是# htt ... -
seajs源码相关之dirname
2012-10-08 17:35 1663其实很多寻址需求里面都会有这样的api设计 举例: ... -
string扩展api--replaceAll
2012-08-01 17:56 1374replaceAll /* @name re ... -
JavaScript1.8.1新特性系列之Trim|TrimLeft|TrimRight
2012-05-09 11:38 2000以前在写字符串长度验证的时候提过一些trim相关的api ...
相关推荐
10. **计算字符串长度**:除了常规的`length`属性,库可能还提供了考虑Unicode字符的长度计算方法。 在实际项目中,"string-fn"库可以极大地提升开发效率,减少手动处理字符串的繁琐工作。通过引入这个库,开发者...
- `str`是要测量长度的字符串。 **示例代码**: ```sql SELECT LENGTH('MySQL String Functions') AS Result; ``` **输出结果**: ``` Result ------------- 23 ``` **应用场景**: - 验证用户输入的长度,确保它...
在本篇文章中,我们将深入探讨JavaScript字符串验证的基础知识,帮助你更好地编写高质量的网站代码。 一、创建与操作字符串 1. 创建字符串:可以通过双引号或单引号来创建字符串,例如:"Hello, World!" 或 'Hello...
JavaScript 中关于字符串字节长度的计算比较(含汉字字符串) 可用于验证字符串长度。效率比较高。
js判断输入字符串长度(汉字算两个字符,字母数字算一个) 文本输入时,由于数据库表字段长度限制会导致提交失败,因此想到了此方法验证。 废话不多说上代码: <html> <head> <title>js判断输入...
在这个“JavaScript_字符串验证.zip”压缩包中,我们有两个文件:`说明.txt`和`validator.js_master.zip`,它们可能包含了关于JavaScript字符串验证的详细信息。 `说明.txt`可能提供了对整个压缩包内容的简要介绍,...
3. **获取字符串的长度**:可以通过`.length`属性来获取字符串的长度,例如:`myStr.length`。 4. **获取字符串中的某个字符**:可以使用`.charAt()`方法来获取字符串中特定位置的字符,例如:`myStr.charAt(0)` 将...
本文将深入解析一个使用JavaScript进行字符串长度验证的实例,旨在帮助开发者更好地理解如何在用户输入时即时检查其合法性,从而避免无效或不符合规则的数据提交至服务器,提高应用的健壮性和效率。 ### 使用...
例如,`"hello".length`将返回5,这在验证字符串长度时非常有用。 2. `charAt(index)`:此方法返回指定位置的字符。例如,`"hello".charAt(0)`将返回`"h"`,用于获取或检查字符串中的特定字符。 3. `indexOf...
不过,在Solidity编程语言中,由于其特定的类型系统和内存管理机制,没有像其他高级编程语言(如JavaScript或Python)中那样直接支持字符串拼接运算符。因此,开发者需要了解如何在Solidity中实现字符串拼接,这通常...
对于每个匹配到的字符,将被替换为两个星号 `"**"`,这样就可以通过 `.length` 属性来正确计算包含中文字符的字符串长度。 ```javascript var length = obj.value.replace(/[^\x00-\xff]/g, "**").length; ``` ...
在JavaScript中,处理中英文混合的字符串长度是一个常见的需求,特别是在网页表单验证或文本处理时。由于中文字符和英文字符在计算机内部表示的方式不同,一个英文字符通常占用1个字节,而一个中文字符则占用2个字节...
例如,你可以验证邮箱格式是否正确,手机号码是否合法,密码强度是否足够,或者字符串长度是否在指定范围内。 2. **表单验证**:除了基本的字符串验证,`validator.js`还允许开发者轻松地对整个表单进行验证。通过...
总的来说,通过引入`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...
例如,字符串长度这一属性可以通过`.length`属性获取,无需额外的方法调用。 **示例:** ```javascript let str = "Hello"; console.log(str.length); // 输出 5 ``` #### 二、常用字符串方法解析 ##### 1. `index...
4. **使用第三方库**:很多编程语言有专门处理字符串验证的库,例如Java中的Apache Commons Lang和JavaScript的validator.js。 5. **工具辅助**:开发过程中,可以借助代码编辑器、IDE或在线工具进行实时验证。例如...
在JavaScript中,获取一个字符串的散列值可以帮助我们实现这些功能。 在给定的标题和描述中,“获取一个字符串的散列hash”指的是利用特定算法将一个字符串转换为其对应的散列值。这个过程对于JavaScript开发者来说...
例如,可能有一个简单的异或加密函数的示例,展示了如何将字符串转化为二进制数组,进行异或操作后再转回字符串。 此外,文件可能还会讨论安全性问题,比如JavaScript中的加密操作受限于浏览器的安全策略,不能处理...