作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前在 https://regex101.com/并输入以下内容(带有全局标志):
REGULAR EXPRESSION: ([A-Z])
TEST STRING: ABCdefGHI
在匹配信息
的右侧,以下字符串属于第 1 组:ABCGHI
我试图在 JavaScript 中复制它,但我遇到了麻烦:
var myString = "ABCdefGHI";
var myRegexp = /([A-Z])/g;
var match = myRegexp.exec(myString);
console.log(match[1]);
上面只是返回A
。期望的结果:ABCGHI
我环顾四周,似乎有一种方法可以通过循环生成的 RegEx 分组数组、压入所有元素,然后进行字符串连接来实现。我想知道这是否完全有必要,或者我是否遗漏了一些明显的东西。
最佳答案
您可以使用 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"
关于javascript - 如何将所有 RegEx 捕获组作为单个字符串获取?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48139767/
我是一名优秀的程序员,十分优秀!