不幸的是,我向所有可以与JS正常合作的Jedi致以问候,但我不能。
我想在各个字符串'm10 m20 m30 xm40'的所有匹配项中进行迭代,除xm40之外,并提取数字10、20、30:
' m10 m20 m30 xm40'.match(/\s+m(\d+)/g)
但这是我在chrome控制台中得到的:
' m10 m20 m30 xm40'.match(/\s+m(\d+)/g)
(3) [" m10", " m20", " m30"]
为什么“ m”也被捕获?我根本听不懂。我尝试了很多组合但都没有成功。有什么想法吗?
再见!
使用RegExp.exec()
功能:
const regex = /\sm(\d+)/g;
const str = ' m10 m20 m30 xm40';
let result = [];
while ((m = regex.exec(str)) !== null) {
// This is necessary to avoid infinite loops with zero-width matches
if (m.index === regex.lastIndex) {
regex.lastIndex++;
}
result.push(+m[1]);
}
console.log(result);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句