JS显示指定字符数,避免一个中文两个字符的情况

0x00

  level: 0x01

0x01

代码如下:

<html>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<body>

<script type="text/javascript">

var txt = "Aa要a国a啊b不a";
document.write("<br>");
document.write(getSubStr(txt, 4));

/**
 * 返回指定显示字符数的函数(考虑中文和大写)
 * 默认10个字符
 * 中文和大写占两个字符
 * 可能会返回 count + 1 个字符
 *
 * @param endIndex demo中传了4
 */
function getSubStr(str, endIndex){
  var dualRegex = /[A-Z\u4e00-\u9fa5]/g;
  var substr = str.substring(0, endIndex);
  var dualNum = substr.match(dualRegex) == null ? 0 : substr.match(dualRegex).length;
  var count = dualNum * 2 + (substr.length - dualNum);
  // document.write(count + "...");
  if (str.length == substr.length)// 是原来那个字符时,直接返回原来的
    return str;
  if (count >= 10)// 显示字符数量
    return substr + (str.length == substr.length ? "" : "...");
  return getSubStr(str, endIndex + 1);
}
</script>

</body>
</html>

  

时间: 2024-08-25 11:42:44

JS显示指定字符数,避免一个中文两个字符的情况的相关文章

js判断输入字符串长度(汉字算两个字符,字母数字算一个):例如 要求输入12的字,24个字节

<html> <head> <title>js判断输入字符串长度(汉字算两个字符,字母数字算一个)</title> <style type="text/css"> .pbt { margin-bottom: 10px; } .ie6 .pbt .ftid a, .ie7 .pbt .ftid a { margin-top: 1px; } .cl:after { clear: both; content: ".&quo

linux 查找指定内容并显示指定行数的命令,显示匹配行和行号

grep -i "desktop-printing-0.19-20.2.el5.x86_64" -n -A 10 install.log linux 查找指定内容并显示指定行数的命令,显示匹配行和行号,布布扣,bubuko.com

js字符串长度计算(一个汉字==两个字符)和字符串截取

js字符串长度计算(一个汉字==两个字符)和字符串截取 String.prototype.realLength = function() { return this.replace(/[^\x00-\xff]/g, "**").length; // [^\x00-\xff] - 匹配非双字节的字符 }; String.prototype.realSubstring = function(n){ var str = this||''; if(this.realLength()<=n

截字符串(汉字一个算两个字符,英文算一个字符)

------摘自动易(RSSFeed.asp) '************************************************** '函数名:GetSubStr '作  用:截字符串,汉字一个算两个字符,英文算一个字符 '参  数:str   ----原字符串 '        strlen ----截取长度 '返回值:截取后的字符串 '************************************************** Function GetSubStr(

Java语言中的字符char可以存储一个中文汉字吗为什么呢

Java语言中的字符char可以存储一个中文汉字吗?为什么呢? · 可以.因为Java语言采用的是Unicode编码.Unicode编码中的每个字符占用两个字节.Char储存的是一个字符(两个字节),中文也是占的两个字节 · 所以,Java中的字符可以存储一个中文汉字 原文地址:https://www.cnblogs.com/lcs-java/p/8486984.html

C语言统计字符数

一段统计字符数的代码及分析. 先贴代码: #include<stdio.h> #include<string.h>//提供memset函数原型. int main() { char S[80]; int C[26],length;//一段声明,即字符数组S,整型数组C,和整型length. memset(C,0,sizeof(C));//将C清零,至于为什么不把字符数组清零,稍后有一段实验过程. for(int i=0;i<=3;i++)//循环4次,读入4行字符串. { g

c语言:用getchar函数读入两个字符给c1,c2,用putchar和printf输出。思考问题

用getchar函数读入两个字符给c1,c2,分别用putchar和printf输出这两个字符.思考以下问题: (1)变量c1和c2定义为字符型还是整型?或二者皆可? (2)要求输出c1和c2的ASCII码,应如何处理? (3)整形变量和字符变量是否在任何情况下都可以互相代替?char c1, c2;和int  c1, c2;是否无条件等价? 程序: #include<stdio.h> int main() { char c1, c2; printf("请输入两个字符c1,c2:&q

【Java基础】Java中的char是否可以存储一个中文字符之理解字符字节以及编码集

Java中的一个char采用的是Unicode编码集,占用两个字节,而一个中文字符也是两个字节,因此Java中的char是可以表示一个中文字符的. 但是在C/C++中由于采用的字符编码集是ASCII,只有一个字节,因此是没办法表示一个中文字符的. 解答了上面的浅显易懂的问题之后,下面彻底理清楚字符 字节以及编码的原理. 其实关于编码以及字节的问题,在腾讯实习生一面的时候也问到过,当时搞不懂面试官为什么会问这个问题,现在想想,这个问题还是很考验一个人的思考以及钻研深度的,而且这个问题远远比自己想象

ubuntu字符界面怎么设置中文显示和中文输入

在ubuntu的字符登陆界面,中文显示默认是乱码的,而且也不支持中文输入,解决方法有很多, 1)安装zhcon--解决中文显示乱码的问题. sudo apt-get install zhcon 然后ctrl+alt+F1~F6进入字符界面,然后输入sudo zhcon --utf8就可以了.不过只能解决中文显示乱码的问题.所以我更喜欢第二种方法. 2)解决中文显示乱码和中文输入的问题. 参考: http://www.playubuntu.cn/article/194.html http://ru