如果是空格,则将每个X字符划分为行,如果不等待空格

Ezh*_*hno 2 javascript string

我有这个工作脚本,每行79个字符.我想添加一个条件,如果第79个字符是空格,它只会破坏该行,如果没有,那么它将在下一个空格中断.(这样的话不会破坏)

这是我目前的功能.(我不知道如何在表达式中添加这个条件)

function myFunction() {
    var long_string = document.getElementById('textg').innerHTML;
    document.getElementById('textg').innerHTML = long_string.replace(/(.{79})/g, "$1<br>");
}
Run Code Online (Sandbox Code Playgroud)

Cer*_*rus 5

这应该做的伎俩:

var str = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed aliquet feugiat enim. Nam viverra sapien quis nisi consequat, nec viverra ligula tempus. Pellentesque sed diam id velit malesuada pellentesque. Vivamus nec condimentum purus. Suspendisse purus lacus, elementum non feugiat molestie, volutpat nec nisl. Vivamus mauris eros, pulvinar eu velit vitae, hendrerit venenatis velit. In accumsan nec lacus eget aliquet. Integer ullamcorper accumsan lacinia. Sed eleifend dignissim libero. Aenean sodales imperdiet ipsum, ut vulputate ante accumsan sit amet. Nunc mollis tristique finibus. Donec pellentesque orci nec ante efficitur scelerisque. Cras ullamcorper euismod sem in pretium. Morbi felis turpis, venenatis sit amet erat mattis, consectetur commodo nisi. Aliquam varius ultrices orci eget tristique.";

var broken = str.replace(/(.{79}[^ ]* )/g, "$1<br />");

document.getElementById('result').innerHTML = broken;
Run Code Online (Sandbox Code Playgroud)
<pre id="result"></pre>
Run Code Online (Sandbox Code Playgroud)

神奇的是这个正则表达式:

/(.{79}[^ ]* )/g

捕获:

  • 79个字符:.{79}+
  • 跟随它的任何东西都不是空格:[^ ]*+
  • 尾随空间.

The replace then replaces the captured section with "that" + a linebreak ("$1<br />")替换捕获的部分


请注意,这将导致<br />字符串中的空格:
enim. <br />Nam

如果你想摆脱那些,在正则表达式中将最后一个空格移出捕获组.然后将丢弃该空间:

/(.{79}[^ ]*) /g

  • 非常欢迎你!这些是一些很好的网站:http://www.regular-expressions.info/和https://regex101.com/ (2认同)