您的位置:首页 > Web前端 > JavaScript

JavaScript和Java求字符串的字节长度

2012-06-13 21:53 218 查看
Java中的写法:

public static void main(String[] args){

System.out,println("长度: " + "ab你好32hg".getBytes().length);

}

JavaScript中的写法:

(1)Js要写函数调用: (c >= 0x0001 && c <= 0x007e) || (0xff60<=c && c<=0xff9f)范围的为单字节

函数如下
/////////////////////////////////////////////////////////////////////

// 判断长度是否合格

//

// 引数 s 传入的字符串

// n 限制的长度n以下

//

// 返回值 false NG

// true OK

/////////////////////////////////////////////////////////////////////

function WidthCheck(s, n){

var w = 0;

for (var i=0; i<s.length; i++) {

var c = s.charCodeAt(i);

//单字节加1

if ((c >= 0x0001 && c <= 0x007e) || (0xff60<=c && c<=0xff9f)) {

w++;

}

else {

w+=2;

}

}

if (w > n) {

return false;

}

return true;

}

(2)function strlen(str) { //在IE8 兼容性模式下 不会报错

var s = 0;

for(var i = 0; i < str.length; i++) {

if(str.charAt(i).match(/[\u0391-\uFFE5]/)) {

s += 2;

} else {

s++;

}

}

return s;

}

(3)

『^\x00-\xff』:\xnum用来匹配num,num为ASCII编码的十六进制转义,这里表达式ASCII编码不在0-255之间的字符.

后面的g表式全局匹配,替换的字符"xx"没有意义,只是为了计算长度用的。

str.replace(/[^\x00-\xff]/g, 'xx').length;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: