字符串化匹配结果

如何显示所有匹配内容,例如

     [
      'JavaScript',
      index: 14,
      input: 'I am learning JavaScript not Java.',
      groups: undefined
    ]
    [
      'Java',
      index: 29,
      input: 'I am learning JavaScript not Java.',
      groups: undefined
    ]

JSON.stringify 似乎不起作用:https ://jsfiddle.net/spxh6ev0/

    const string = "I am learning JavaScript not Java.";
    const re = /Java[a-z]*/gi;

    let result = string.matchAll(re);

    for (let match of result) {
      alert(JSON.stringify(match));
    }

回答

String#prototype#matchAll 返回一个可迭代对象,您需要将其类型转换为一个数组并对其进行整形以匹配您的输出,如下所示 -

const string = "I am learning JavaScript not Java.";
const re = /Java[a-z]*/gi;

let result = [...string.matchAll(re)].map((x) => ({
  match: x[0],
  index: x.index,
  input: x.input,
  groups: x.groups
}));

for (let match of result) {
  console.log(match);
}


以上是字符串化匹配结果的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>