如何将所有RegEx捕获组作为单个字符串?

时间:2018-01-07 17:32:42

标签: javascript regex

我目前正在使用https://regex101.com/并输入以下内容(带有全局标记):

REGULAR EXPRESSION: ([A-Z])
TEST STRING: ABCdefGHI

Match Information的右侧,以下字符串位于第1组:ABCGHI

我试图在JavaScript中复制这个并且我遇到了麻烦:

var myString = "ABCdefGHI";
var myRegexp = /([A-Z])/g;
var match = myRegexp.exec(myString);
console.log(match[1]);

以上只返回{​​{1}}。期望的结果:A

我已经看了一下,似乎有办法通过循环生成的RegEx分组数组,推送所有元素,然后进行字符串连接。我想知道这是否完全必要,或者我是否遗漏了一些明显的东西。

1 个答案:

答案 0 :(得分:4)

您可以使用array.join(''),其中array的返回值为string.match(re)

var myString = "ABCdefGHI";
var myRegexp = /([A-Z])/g;

var result = myString.match(myRegexp).join('');

console.log(result);
//=>"ABCGHI"

否则,如果您被允许更改正则表达式,则使用否定:

var repl = myString.replace(/[^A-Z]+/, '')
//=> "ABCGHI"