js中英文字符串长度及截取问题

翻译 2007年10月13日 17:03:00

tag:js中英文字符串长度 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

既然有了长度的判断 那么我们再来看一下中英文字符串截取的问题:
看下面一段程序:

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);
上面的程序不难理解 这里不作解释了
更多文章在这里

C#中进行中英文字符截取(中文2个长度,英文1个)

前言最近项目有个需求,就是截取文本,区分中英文字符,中文算2个长度,英文算1个长度,截取后增加…,占3个长度(包括在限制长度内),需求不复杂,想要写出较好的方法,得稍稍费点心思,下面是笔者写的代码,仅...
  • lhtzbj12
  • lhtzbj12
  • 2017年03月05日 09:03
  • 1155

Java 截取中英文混合字符串

题目: 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我...
  • yulei_qq
  • yulei_qq
  • 2015年04月16日 17:28
  • 1989

lua 含中文的字符串处理--分离字符、计算字符数、截取指定长度

lua中对中文字符串的一些处理 分离字符 将每个字符分离出来,放到table中,一个单元内一个字符 function StringToTable(s) local tb = {} ...
  • a102111
  • a102111
  • 2016年08月12日 20:18
  • 3689

java和Js 按字节来截取字符串长度(为了符合数据库varchar)

/** * 截取符合oracle varchar长度的字符集 * * @author 陈兵 * */ public class SplitString { public static ...
  • cbxjj
  • cbxjj
  • 2011年07月21日 15:33
  • 1752

JS~字符串长度判断,超出进行自动截取(支持中文)

var GetLength = function (str) { ///获得字符串实际长度,中文2,英文1 ///要获得长度的字符串 var realL...
  • u011626859
  • u011626859
  • 2015年06月27日 22:12
  • 160

Angular Truncate(一款灵活控制Angular字符串长度的js插件)

  • 2017年04月12日 10:37
  • 258KB
  • 下载

js计算字符串长度

  • 2012年02月14日 16:47
  • 770B
  • 下载

统计含中英文混编的NSString 字符串长度

计算NSString的字符长度,用length方法 Returns the number of Unicode characters in the receiver,既是英文字符和中文汉字都是一个字符...
  • happyrabbit456
  • happyrabbit456
  • 2014年01月08日 17:31
  • 1988

php strlen mb_strlen计算中英文混排字符串长度

在php中常见的计算字符串长度的函数有:strlen和mb_strlen,下面是对这两个函数的比较说明(编码方式UTF8) 比较strlen和mb_strlen  当字符全是英文字符的时候,两者是...
  • jj88888
  • jj88888
  • 2015年04月20日 09:59
  • 651

js常用验证函数库 提供常用的验证函数,如日期、身份证、数字等,另外提供了一些java中有但js中没有提供的函数,如trim(),取中文字符串长度等

  • 2010年05月25日 10:37
  • 25KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:js中英文字符串长度及截取问题
举报原因:
原因补充:

(最多只允许输入30个字)