先上代码:

function strCode(str) {  //获取字符串的字节数
    var count = 0;  //初始化字节数递加变量并获取字符串参数的字符个数
    if (str) {  //如果存在字符串,则执行
        len = str.length; 
        for (var i = 0; i < len; i++) {  //遍历字符串,枚举每个字符
            if (str.charCodeAt(i) > 255) {  //字符编码大于255,说明是双字节字符(即是中文)
                count += 2;  //则累加2个
            } else {
                count++;  //否则递加一次
        console.log(count);
        return count;  //返回字节数
    } else {
   		console.log(0);
        return 0;  //如果参数为空,则返回0个
var a = '1234567';
var c = '我是第一';
strCode(a);
strCode();
strCode(c);
strCode('asd啊啊啊');

效果如下:
在这里插入图片描述

charCodeAt()
charCodeAt() 方法可返回指定位置的字符的 Unicode 编码。 字符串中第一个字符的位置为 0, 第二个字符位置为 1,以此类推。

语法:
string.charCodeAt(index)

参数描述
index必需。表示字符串中某个位置的数字,即字符在字符串中的下标
类型描述
Number返回在指定的位置的字符的 Unicode 编码
var a = '1x.我'
console.log(a.charCodeAt(0));
console.log(a.charCodeAt(1));
console.log(a.charCodeAt(2));
console.log(a.charCodeAt(3));

效果:
在这里插入图片描述
注:当unicode>255,可以判断该字符字节长度为2(中文)

参考:http://c.biancheng.net/view/5547.html

原文链接:http://c.biancheng.net/view/5547.html function getByteLen(val) {    //传入一个字符串             var len = 0;             for (var i = 0; i  val.length; i++) {                 if (val[i].match(/[^\x00-\xff]/ig) != null) //全角 对于使用javascript编程的人来说,判断字符长度应该是常用又简单的操作,但在判断包含有中文字符或其他非asci字符字符长度时,却有些坑在里面。 js判断字符串的长度一般都是使用 length 属性 ,但是 length 属性获取到的字符长度是以字节为单位,如果我们想要利用 js 根据字节来获取或判断一串字符串的长度该如何做呢? js字符判断一串字符串的长度 length:属性可以读取字符串的长度长度字符为单位,该属性为只读属性。 示例代码: <script> var str = 'hello word!';... for (var i = 0; i &amp;lt; str.length; i++) { var a = str.charAt(i); if (a.match(/[^\x00-\xff]/ig) != null) { len += 2; var len = 0; for (var i=0; i<this.length; i++) { if (this.charCodeAt(i)>127 || this.charCodeAt(i)==94) { len += 2; } else { len . 原理:前128个字符就是ASCII码,占用一个字节,128个之后是扩展码(Unicode码),占用2个字节。汉字:[0x4e00,0x9fa5](或十进制[19968,40869])是全角字符的范围(注意这里有个非),通过正则来获取字符串中的全角字符。小写字母:[0x61,0x7a](或十进制[97, 122])大写字母:[0x41,0x5a](或十进制[65, 90])数字:[0x30,0x39](或十进制[48, 57]) 默认的JS判断字符长度的方法是按字数计算的,这样1个汉字与1个英文都是1的长度,不够准确,可以用下面的代码来实现1个汉字等于两个英文长度的计算.String.prototype.getlength = function() { return this.replace(/[^/x00-/xff]/ig, "aa").length; } //例子alert("我是Miller".getleng 汉字在数据库中占2个字符,如果输入字符超过数据库表字段长度,会出现错误,因此需要在前台进行判断。有两种方法进行判断: 方法一:使用正则表达式,代码如下:function getByteLen(val) { var len = 0; for (var i = 0; i < val.length; i++) { 遍历字符串的每个字符,利用chartCodeAt()获取相应字符编码code, 若code>=0 && code<=128,则长度+1, 否则长度+2. String.prototype.GetLength = function() { var realLength = 0, len = this.length, charCode = -1; for (var i = 0; i < JS字符串都是string对象,可以用string对象的length属性可以获取其长度,但是无论是中文、全角符号以及英文最小长度单位都是1,这与php的strlen()并不相同。 代码如下: function strlen(str) { var s = 0; for(var i = 0; i if(str.charAt(i).match(/[u0391-uFFE5]/)) {