javascript - 正则表达式文本替换使用 |和 () 捕获问题

标签 javascript regex

我正在使用 javaScript RegEx 文字来替换字符串的一部分, 我想用 |检查可能出现的不同类型的模式,并 () 捕获我想要替换的匹配部分。但这似乎不起作用,这是为什么?

这是我当前的正则表达式:

testText.replace(/(\w)\s+\w$|(\w)\s+$|\w+(\w)$/g, "$1...")

我猜它有问题:这是我想要实现的目标:

给定“xx”我期望:

  "x..."

给定“x”我期望:

   "x...

给定“werfdsdfasd”(没有空格的单词)我期望:

   "werfdsdfasd..."

最佳答案

问题是您有 3 个捕获组,并且您始终引用第一个捕获组。

试试这个:(\w+)(?:\s+\w$|\s+$|$)

Demo

关于javascript - 正则表达式文本替换使用 |和 () 捕获问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53073808/

相关文章:

regex - 如何用 sed 替换一行/

c# - 匹配日期范围的正则表达式

JavaScript 正则表达式仅创建整个单词的数组。

javascript - Google 条形图无法显示 float

php - 调试 JavaScript 代码

javascript - 并行 ajax 调用 - 无法收到第一个响应

javascript - 如何在 D3 图表的标签中包含换行符?

javascript - 如何在javascript中使用正则表达式检索div中的内容

regex - CodeIgniter 中的路由 : Matching specific length segment

javascript - 将文本从 IFRAME 复制到父页面上的 INPUT 字段