我目前正在使用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分组数组,推送所有元素,然后进行字符串连接。我想知道这是否完全必要,或者我是否遗漏了一些明显的东西。
答案 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"