【问题标题】:Javascript: Add Break after each 100 charactersJavascript:每 100 个字符后添加中断
【发布时间】:2010-07-07 10:57:33
【问题描述】:

如果我写长文本,例如:

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

文本超出页面,我有一个修复它的想法,每 100 个字符后我可以创建一个<br /> 标记。但我不知道该怎么做。

感谢您的帮助!

【问题讨论】:

  • 您会发现实际上这并不会真正导致大问题。创建像这样的长文本字符串通常只是您在测试环境中会做的事情。
  • 这不是文字。普通文本包含单词(带空格的字母),它会被您的浏览器自动中断。
  • 只是为了回答你的问题str = str.replace(/(.{100})/g, "$1<br/>");
  • 不插入 s.replace(/([^\n]{100})/g, '$1\n');

标签: javascript text character break line-breaks


【解决方案1】:

只需在要强制换行的元素上使用以下 CSS 属性:

word-wrap: break-word;

无需任何 JavaScript!

如果您真的想使用 JavaScript(用于概念;CSS 更适合可访问性和易用性),那就继续吧。

哦,还有一件事,如果您使用的字体不是等宽字体(而是成比例的),那么在 100 个字符处截断可能是无效的。一行可以有 100 个 'i' 字符,下一行有另外一百个 'm' 字符,它们的大小非常不同。

哦,还有另一件事,你不能只在innerHTML 上应用正则表达式替换,除非它全是文本。如果那里可能有其他元素,您必须实际循环遍历节点,将该技术仅应用于文本节点。

哦,还有另一件事,别费心了。用 javascript 做的问题太多了。

【讨论】:

    【解决方案2】:

    你可以试试下面的代码

    str = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa';
    
    len = str.length;
    loop = len / 100;
    document.write(loop);
    document.write('<br>');
    
    for(i=0; i<=loop; i++){
      document.write( str.slice( i*100, (i*100)+100) );
      document.write('<br>');
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-05-18
      • 1970-01-01
      • 1970-01-01
      • 2014-04-17
      • 1970-01-01
      • 1970-01-01
      • 2021-05-18
      相关资源
      最近更新 更多