5 个解决方案
#1
楼主是想按全角两个字节,半角一个字节计算长度吗?如果是这个意思的话可以这样做:
String.prototype.length2 = function () {
return this.replace(/[^\x00-\xff]/g, '..').length;
};
var s = '中文123abc';
alert(s.length); //8
alert(s.length2()); //10
#2
最主要的还不是全角半角,而是怎样得到!如果你的例子里的字符串变为【中/文"1"2'3'a,b<>=c】甚至是比这还复杂的源代码,还能得到字节数吗?
#3
不管内容多复杂,只要是个字符串变量,当然能得到长度。
还是没太明白你想要的是什么,你说的字节数指什么?
#4
最主要的还不是全角半角,而是怎样得到!如果你的例子里的字符串变为【中/文"1"2'3'a,b<>=c】甚至是比这还复杂的源代码,还能得到字节数吗?
楼主是想按全角两个字节,半角一个字节计算长度吗?如果是这个意思的话可以这样做:
String.prototype.length2 = function () {
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';//这样是得不到长度的!
不过,用一个变量表示就不要紧了。
#5
最主要的还不是全角半角,而是怎样得到!如果你的例子里的字符串变为【中/文"1"2'3'a,b<>=c】甚至是比这还复杂的源代码,还能得到字节数吗?
楼主是想按全角两个字节,半角一个字节计算长度吗?如果是这个意思的话可以这样做:
String.prototype.length2 = function () {
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';//这样是得不到长度的!
不过,用一个变量表示就不要紧了。
大概猜到了你的意思,是这样吗?
<!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); //14
var t2 = eval('"' + t.value + '"');
alert(t2); //中文\123'abc'
alert(t2.length); //11
</script>
</body>
</html>
#1
楼主是想按全角两个字节,半角一个字节计算长度吗?如果是这个意思的话可以这样做:
String.prototype.length2 = function () {
return this.replace(/[^\x00-\xff]/g, '..').length;
};
var s = '中文123abc';
alert(s.length); //8
alert(s.length2()); //10
#2
楼主是想按全角两个字节,半角一个字节计算长度吗?如果是这个意思的话可以这样做:
String.prototype.length2 = function () {
return this.replace(/[^\x00-\xff]/g, '..').length;
};
var s = '中文123abc';
alert(s.length); //8
alert(s.length2()); //10
#3
最主要的还不是全角半角,而是怎样得到!如果你的例子里的字符串变为【中/文"1"2'3'a,b<>=c】甚至是比这还复杂的源代码,还能得到字节数吗?
楼主是想按全角两个字节,半角一个字节计算长度吗?如果是这个意思的话可以这样做:
String.prototype.length2 = function () {
return this.replace(/[^\x00-\xff]/g, '..').length;
};
var s = '中文123abc';
alert(s.length); //8
alert(s.length2()); //10
不管内容多复杂,只要是个字符串变量,当然能得到长度。
还是没太明白你想要的是什么,你说的字节数指什么?
#4
最主要的还不是全角半角,而是怎样得到!如果你的例子里的字符串变为【中/文"1"2'3'a,b<>=c】甚至是比这还复杂的源代码,还能得到字节数吗?
楼主是想按全角两个字节,半角一个字节计算长度吗?如果是这个意思的话可以这样做:
String.prototype.length2 = function () {
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';//这样是得不到长度的!
不过,用一个变量表示就不要紧了。
#5
最主要的还不是全角半角,而是怎样得到!如果你的例子里的字符串变为【中/文"1"2'3'a,b<>=c】甚至是比这还复杂的源代码,还能得到字节数吗?
楼主是想按全角两个字节,半角一个字节计算长度吗?如果是这个意思的话可以这样做:
String.prototype.length2 = function () {
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';//这样是得不到长度的!
不过,用一个变量表示就不要紧了。
大概猜到了你的意思,是这样吗?
<!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); //14
var t2 = eval('"' + t.value + '"');
alert(t2); //中文\123'abc'
alert(t2.length); //11
</script>
</body>
</html>