日期:2014-05-20  浏览次数:20649 次

javascript 正则表达式表示中文问题
下面的代码是以字节为单位获得字符串的长度。
JScript code
 <html 
<head>
</head>
<body>
<script>
  String.prototype.lenB=function()
  {
  return this.replace(/[^\x0-\xf]/g,"##").length;
  }
  var sName="a聪慧b";
  alert(sName.lenB());
</script>
</body>
</html>


上面的代码是我直接从书上搞下来的,我总觉得这代码有点问题。
\x0-\xf 这十六进制编码代表什么东西啊。。一直没查到。请教大家 ,谢谢。

------解决方案--------------------
\x
表示十六进制啊.....
在js中
------解决方案--------------------
查了查 这是匹配 双字节的 

具体原因 还没想清楚
------解决方案--------------------
双字节字符

这个代码其实是一种变通的实现方式,就是把一个双字符字符替换成两个单字符字符,然后再通过计算替换后字符的个数,来达到统计原始字符串字节数的目的

这里是把一个双字节字符替换成两个“#”,当然也可以是其它任意单字节字符,如“a“之类的
------解决方案--------------------
探讨
双字节字符

这个代码其实是一种变通的实现方式,就是把一个双字符字符替换成两个单字符字符,然后再通过计算替换后字符的个数,来达到统计原始字符串字节数的目的

这里是把一个双字节字符替换成两个“#”,当然也可以是其它任意单字节字符,如“a“之类的