Javascript 按长度分解字符串,保留单词

Javascript 按长度分解字符串,保留单词,javascript,arrays,string,Javascript,Arrays,String,使用javascript,我想将任意长度的字符串拆分为最多80个字符的段。需要注意的是,我不想拆分单词。例如,我目前正在使用这里列出的方法 问题是,一个从第76个字符开始到第84个字符结束的单词将被分成两半。是否有一个光滑的正则表达式或代码来防止这种情况 为了澄清这一点,我能够编写一个小函数来实现这一点,我只是想知道是否有一种干净、简洁的方法 字符串的长度和内容可以是任意的,但下面是一个示例: 知识是一种美德,是一种美德,是一种美德,是一种美德。但是,在最低限度上,我们需要一个实验室来进行日常工

使用javascript,我想将任意长度的字符串拆分为最多80个字符的段。需要注意的是,我不想拆分单词。例如,我目前正在使用这里列出的方法

问题是,一个从第76个字符开始到第84个字符结束的单词将被分成两半。是否有一个光滑的正则表达式或代码来防止这种情况

为了澄清这一点,我能够编写一个小函数来实现这一点,我只是想知道是否有一种干净、简洁的方法

字符串的长度和内容可以是任意的,但下面是一个示例:

知识是一种美德,是一种美德,是一种美德,是一种美德。但是,在最低限度上,我们需要一个实验室来进行日常工作。两人或两人在一个无教区的房间里互相指责。除偶尔因疏忽而死亡外,不得因疏忽而导致动物死亡


使用例如
/.{1,80}\b/g
尊重单词边界如何?

使用例如
/.{1,80}\b/g
尊重单词边界如何?

您可以使用以下正则表达式:

/\S.{1,79}(?=$|\s)/g
\S
确保行以非空格开头。因此,
{1,79}
中的计数需要少一个。使用前瞻
(?=
可以确保匹配在前面有空格或字符串结尾(
$
)时停止

match()
一起使用时,您可以根据请求获得行,并在发生换行的位置删除空格

下面的代码段使用50作为宽度,而不是80,因此渲染效果良好:

var s="知识本身是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德如果你不轻率,就必须为自己的行为负责;
var res=s.match(/\s.{1,49}(?=$|\s)/g);
console.log(res);

。作为控制台包装{max height:100%!important;top:0;}
您可以使用以下正则表达式:

/\S.{1,79}(?=$|\s)/g
\S
确保一行以非空格开头。因此,
{1,79}
中的计数需要少一个。使用前瞻
(?=
可以确保匹配在前面有空格或字符串结尾(
$
)时停止

match()
一起使用时,您可以根据请求获得行,并在发生换行的位置删除空格

下面的代码段使用50作为宽度,而不是80,因此渲染效果良好:

var s=”知识本身是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德如果你不轻率,就必须为自己的行为负责;
var res=s.match(/\s.{1,49}(?=$|\s)/g);
console.log(res);

.as控制台包装{最大高度:100%!重要;顶部:0;}
请具体说明问题?显示输入字符串字符串可以是任意长度和内容请具体说明问题?显示输入字符串字符串可以是任意长度和内容这是一个非常好的主意!在罕见的情况下,在达到80个字符限制之前不会出现分词,char行首的字符可能会丢失。但是80个字符的字符是非常理论化的。此外,在标点符号之前可能会出现中断,例如
word,word
可能会出现
['word',',word']
。这几乎正是我所需要的!它会打断像
那样的单词,理论上会打断
单词。
。有没有办法保留那样的标点符号?最好的答案,不管怎样,但如果可以管理的话,那就太好了:)这是一个非常好的主意!在罕见的情况下,在达到80个字符的限制之前不会出现分词,行首的字符将丢失。但对于80个字符,这是非常理论化的。此外,在标点符号之前可能会出现分词,如
word,word
可能出现
['word','word']
。这几乎正是我所需要的!它会打断像
那样的单词,理论上会打断
单词。
。有没有办法保留那样的标点符号?最好的答案,不管怎样,但如果可以管理的话,那就太好了:)你检查我的答案了吗?我看到你对另一个关于切分
的答案的评论,那就是
。我提出的解决方案没有这个问题。你发现它有任何其他问题吗?为什么投反对票?我想知道是什么错了,这样我可以改进……你检查我的答案了吗?我看到你对另一个关于切分
的答案的评论是的
。我提出的解决方案没有这个问题。你发现它有任何其他问题吗?为什么投反对票?我想知道哪里出了问题,以便我可以改进。。。