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>
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。