js中英文字符串长度及截取问题
2010-04-21 10:20
344 查看
摘要:我们在用程序处理文本的过程中,经常碰到中英文字符串的问题,比如说我们要得到文本编辑器中一段中英文混合文字的长度从而进行数据验证,有的时候我们为了实现某些特殊的效果需要对文字进行截取,这时候我们就用到了中英文混合文字的截取问题
我们分两步来看一下这个问题
js中英文字符串长度
因为一个中文字符=两个英文字符的长度,所以我们采用一个办法将一个汉字字符转化为两个字节的英文字符 实现代码如下
js 代码
<script>
String.prototype.len=function()
{
return this.replace(/[^/x00-/xff]/g,"rr").length;
}
var str="bdkey的字符串";
alert(str.len()); //5+8=13
</script>
x00-/xff 代表非汉字编码
一个汉字代表两个字节,所以那样了,不过应该是
return this.replace(/[^/0xa1-/0xff]/g,"**").length;
运行示例程序会弹出一个对话框显示13
既然有了长度的判断 那么我们再来看一下中英文字符串截取的问题:
看下面一段程序:
js 代码
String.prototype.sub = function(n) {
var r = /[^/x00-/xff]/g;
if(this.replace(r, "mm").length <= n) return this;
// n = n - 3;
var m = Math.floor(n/2);
for(var i=m; i<this.length; i++) {
if(this.substr(0, i).replace(r, "mm").length>=n) {
return this.substr(0, i) +"..."; }
} return this;
};
用法: var a = "gdfghrtfhrjtyjtukyukyk";a.sub(10);
上面的程序不难理解 这里不作解释了
我们分两步来看一下这个问题
js中英文字符串长度
因为一个中文字符=两个英文字符的长度,所以我们采用一个办法将一个汉字字符转化为两个字节的英文字符 实现代码如下
js 代码
<script>
String.prototype.len=function()
{
return this.replace(/[^/x00-/xff]/g,"rr").length;
}
var str="bdkey的字符串";
alert(str.len()); //5+8=13
</script>
x00-/xff 代表非汉字编码
一个汉字代表两个字节,所以那样了,不过应该是
return this.replace(/[^/0xa1-/0xff]/g,"**").length;
运行示例程序会弹出一个对话框显示13
既然有了长度的判断 那么我们再来看一下中英文字符串截取的问题:
看下面一段程序:
js 代码
String.prototype.sub = function(n) {
var r = /[^/x00-/xff]/g;
if(this.replace(r, "mm").length <= n) return this;
// n = n - 3;
var m = Math.floor(n/2);
for(var i=m; i<this.length; i++) {
if(this.substr(0, i).replace(r, "mm").length>=n) {
return this.substr(0, i) +"..."; }
} return this;
};
用法: var a = "gdfghrtfhrjtyjtukyukyk";a.sub(10);
上面的程序不难理解 这里不作解释了
相关文章推荐
- js中英文字符串长度及截取问题
- js中英文字符串长度 js中英文字符串截取(转)
- 中英文字符串求长度、截取问题
- 字符串处理:中英文混排固定长度截取问题
- js通过字节长度截取中英文混合字符串
- 字符串处理:中英文混排固定长度截取问题
- 处理字符串的一些js/jq方法(去除HTML,去除空格,计算真实长度,截取中英文字符)
- js判断字符长度,含中英文数字以及含中文字符截取的问题
- 记一次js中和php中的字符串长度计算截取的终极问题和完美解决方案
- 解决页面截取中英文字符串长度显示不一致问题
- js中英文字符串长度 js中英文字符串截取(转)
- 记一次js中和php中的字符串长度计算截取的终极问题和完美解决方案
- 处理字符串的一些js/jq方法(去除HTML,去除空格,计算真实长度,截取中英文字符)
- js截取中英文字符串长度
- 用C#截取指定长度的中英文混合字符串
- 用C#截取指定长度的中英文混合字符串的最终算法
- C#截取指定长度中英文字符串方法
- 解决中英文字符串长度问题函数
- js截取中英文字符串、标点符号无乱码示例解读
- 中英文混合时截取固定字符串长度(中文算两个长度)