js每十个字符换行

KamDing 2017-03-08 08:47:47
例如 将

var str = "01abc23中文4567中ad文89中文" 每十个字符换行

(注意:一个中文作为两个字符,一个数字或者字母作为一个字符来算) 请不要粘贴网上的过来
...全文
2805 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
KamDing 2020-05-21
  • 打赏
  • 举报
回复
引用 10 楼 Ta,suo 的回复:
楼主写的太好了,我网上找了好久,尽遇到些只会用document.createElement("br");以及write(“ <br>”)结果一点用没有.....
哈哈 谢谢
Ta,suo 2019-12-02
  • 打赏
  • 举报
回复
楼主写的太好了,我网上找了好久,尽遇到些只会用document.createElement("br");以及write(“ <br>”)结果一点用没有.....
maxubo 2018-09-14
  • 打赏
  • 举报
回复
留个记录 方便查找
KamDing 2017-03-09
  • 打赏
  • 举报
回复
引用 楼主 dingyongjin 的回复:
例如 将 var str = "01abc23中文4567中ad文89中文" 每十个字符换行 (注意:一个中文作为两个字符,一个数字或者字母作为一个字符来算) 请不要粘贴网上的过来
最后我还是用了自己的方法,不过还是谢谢天际的海浪的正则,附上我解决的方法 function getNewline(val) { var str = new String(val); var bytesCount = 0; var s=""; for (var i = 0 ,n = str.length; i < n; i++) { var c = str.charCodeAt(i); //统计字符串的字符长度 if ((c >= 0x0001 && c <= 0x007e) || (0xff60<=c && c<=0xff9f)) { bytesCount += 1; } else { bytesCount += 2; } //换行 s += str.charAt(i); if(bytesCount>=10){ s = s + '\n'; //重置 bytesCount=0; } } return s; } $(function(){ var str = "中文0123456789中文01234567890中文"; var newStr = getNewline(str); alert(newStr); });
KamDing 2017-03-09
  • 打赏
  • 举报
回复
引用 1 楼 LinBilin_ 的回复:
按你这么说的话,能换行?
我说得不严谨 最后是中文的话 就放在前面一行
KamDing 2017-03-09
  • 打赏
  • 举报
回复
引用 4 楼 jslang 的回复:
var str = "01abc23中文4567中ad文89中文"; str=str.replace(/[^\x00-\xff]/g,"$&\x01").replace(/.{10}\x01?/g,"$&\n").replace(/\x01/g,""); alert(str);
谢谢您的正则
天际的海浪 2017-03-08
  • 打赏
  • 举报
回复
var str = "01abc23中文4567中ad文89中文";
str=str.replace(/[^\x00-\xff]/g,"$&\x01").replace(/.{10}\x01?/g,"$&\n").replace(/\x01/g,"");
alert(str);
当作看不见 2017-03-08
  • 打赏
  • 举报
回复
哈哈,正则匹配,判断是中文数字还是英文,然后再判断长度。插入换行符
天际的海浪 2017-03-08
  • 打赏
  • 举报
回复
如果第10个字符是中文,怎么办?没法拆成半个字啊
  • 打赏
  • 举报
回复
按你这么说的话,能换行?

87,993

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧