regEx文本替换为|和()捕获问题

时间:2018-10-30 22:32:02

标签: javascript regex

我正在使用javaScript RegEx文字替换字符串的一部分, 我要使用|检查可能发生的不同类型的模式,以及()捕获我要替换的部分匹配内容。它似乎没有用,为什么呢?

这是我当前的regEx:

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

我猜它出了点问题:这是我想要实现的目标:

给定“ x x”,我期望:

  "x..."

给定“ x”,我希望:

   "x...

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

   "werfdsdfasd..."

2 个答案:

答案 0 :(得分:2)

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

尝试以下操作:(\w+)(?:\s+\w$|\s+$|$)

Demo

答案 1 :(得分:1)

因此,您想捕获空格或行尾之前的所有内容。

(\w+)(\s+.*$|$)