将字符串分成两部分,保持单词完整并返回它们

two*_*pcz 3 javascript regex string pug

正如标题所说,看看如何将一个字符串分成两部分,同时保持完整单词完整,并使用 JavaScript 访问这两个部分。我在 pug 文件中使用这个字符串。

例如,我有一个很长的字符串

let str = `hello i am a very long string that needs to be split into two different parts! thank you so much for helping.'
Run Code Online (Sandbox Code Playgroud)

我想要前 70 个字符用作标题,然后其余的字符用作元素的正文。

我使用了在一篇较旧的帖子中找到的这个正则表达式,它为我提供了前 70 多个字符,以及完整的单词......

str.replace(/^([\s\S]{70}[^\s]*)[\s\S]*/, "$1")
Run Code Online (Sandbox Code Playgroud)

这就是我想要它做的!但现在我需要弄清楚是否有办法获取该字符串的其余部分?

str1 = `hello i am a very long string that needs to be split into two different`
str2 = `parts! thank you so much for helping.`
Run Code Online (Sandbox Code Playgroud)

再次,在 pug 文件中使用它,所以如果有一个简单的答案,我会喜欢的。否则我想我可以编写一个函数并将脚本导入到哈巴狗视图中。

Jvd*_*vdV 5

当分割发生在空白字符上时,您想要做什么。说; “不同”后面的空格。这意味着空格之前的部分是 69 个字符,但如果包含空格则为 70 个字符。假设您想捕获下一个单词以进行良好的测量,请尝试利用 JS 的零宽度lookbehind:

(?<=^.{70}\S*)\s+
Run Code Online (Sandbox Code Playgroud)

查看在线演示


  • (?<=- 打开正向回顾;
    • ^.{70}- 起始线锚点后 70 个字符;
    • \S*- 0+ 非空白字符;
  • \s+- 捕获 1 个以上空白字符进行分割。