龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > Javascript编程 >

返回字符串的中文字符个数javascript代码

时间:2012-12-29 08:41来源:未知 作者:admin 点击:
分享到:
一般的字符长度对中文和英文都是不分别的 如JS里的length,那么如何返回字符串中中文字符的个数呢不过我自己也想到了一个办法:先去掉非中文字符,再返回length属性。函数以及测试
一般的字符长度对中文和英文都是不分别的 如JS里的length,那么如何返回字符串中中文字符的个数呢 不过我自己也想到了一个办法:先去掉非中文字符,再返回length属性。函数以及测试代码如下:

 实例

 代码如下
<script type="text/javascript">
 function cLength(str){
  var reg = /[^u4E00-u9FA5uf900-ufa2d]/g;
  //匹配非中文的正则表达式
  var temp = str.replace(reg,'');
  return temp.length;
 }
 var str = "中文123";
 document.write(str.length+'<br />');
 document.write(cLength(str));
 </script>

结果:

 5

 2

中文两个,数字三个,正确


实例

分别检查中文与英文长度,中文为2字节,英文为1字节

 

 代码如下
<script language="vbscript">
Function LeftStr(Str)
TextCount = Len(Str) '得到整
For I = 1 To TextCount    
MidTemp = Mid(Str,I,1)'得到当前第I个字符
AscTemp = Asc(MidTemp)'得到当前第I个字符的ANSI代码
If AscTemp > 0 Then '判断英文
TextLen = TextLen + 1'累计当前长度(英文)
Else'判断中文
TextLen = TextLen + 2'累计当前长度(中文)
End If
Next
LeftStr = TextLen '输出
End Function
msgbox """abcdefg""的长度为:"&leftstr("abcdefg")
msgbox """加上中文试试!""的长度为:" &leftstr("加上中文试试!")
</script>

实例

 

 代码如下
<script>
String.prototype.tLength=function(){
temp=this.replace(/([^x00-xff])/g,"$1$1");
return temp.length
}
alert("中英Quiz".length)
alert("中英quiz".tLength())
</script>

实例

下面的测试也正确。

 代码如下

 var str = "中文123tets@#!#%$#[][{}";
 document.write(str.length+'<br />');
 document.write(cLength(str));


精彩图集

赞助商链接