楼主是想按全角两个字节,半角一个字节计算长度吗?如果是这个意思的话可以这样做:String.prototype.length2 = function () {
return this.replace(/[^\x00-\xff]/g, '..').length;
};var s = '中文123abc';
alert(s.length); //8
alert(s.length2()); //10
return this.replace(/[^\x00-\xff]/g, '..').length;
};var s = '中文123abc';
alert(s.length); //8
alert(s.length2()); //10
不管内容多复杂,只要是个字符串变量,当然能得到长度。
还是没太明白你想要的是什么,你说的字节数指什么?
是这句:var s = '中文123abc';
如果字符串内容很复杂,是源代码的话就会有问题,比如:var s = '中/文"1"2'3'a,b<>=c';//这样是得不到长度的!
不过,用一个变量表示就不要紧了。
不管内容多复杂,只要是个字符串变量,当然能得到长度。
还是没太明白你想要的是什么,你说的字节数指什么?
是这句:var s = '中文123abc';
如果字符串内容很复杂,是源代码的话就会有问题,比如:var s = '中/文"1"2'3'a,b<>=c';//这样是得不到长度的!
不过,用一个变量表示就不要紧了。大概猜到了你的意思,是这样吗?<!DOCTYPE html>
<html>
<head>
<title>test</title>
</head>
<body>
<input type="text" id="t" value="中文\\123\'abc\'" />
<script type="text/javascript">
var t1 = t.value;
alert(t1); //中文\\123\'abc\'
alert(t1.length); //14var t2 = eval('"' + t.value + '"');
alert(t2); //中文\123'abc'
alert(t2.length); //11
</script>
</body>
</html>