JS方法:
- <script language=javascript>
- String.prototype.lenB = function(){return this.replace(/[^\x00-\xff]/g, "**").length;}
- var str = "这是一个可以将汉字计算成两个字节的函数 ";
- alert( "老的算法 = " + str.length);
- alert( "新的算法 = " + str.lenB());
- </script>
说明:上面JS里方法里的"**"表示把一个中文替换成英文的位数。"**"代表一个中文=两个英文
java方法:
- /**
- * 获取字符串的长度,如果有中文,则每个中文字符计为2位
- *
- * @param value
- * 指定的字符串
- * @return 字符串的长度
- */
- public int chineseLength(String value) {
- int valueLength = 0;
- String chinese = "[\u0391-\uFFE5]";
- /* 获取字段值的长度,如果含中文字符,则每个中文字符长度为2,否则为1 */
- for (int i = 0; i < value.length(); i++) {
- /* 获取一个字符 */
- String temp = value.substring(i, i + 1);
- /* 判断是否为中文字符 */
- if (temp.matches(chinese)) {
- /* 中文字符长度为2 */
- valueLength += 2;
- } else {
- /* 其他字符长度为1 */
- valueLength += 1;
- }
- }
- return valueLength;
- }
说明:我想大家一看就懂了吧,关键语句是第18行。