将正则表达式匹配从console.log传递到变量以在文本框中显示输出

时间:2018-10-24 10:33:13

标签: javascript regex

我要实现的是将存储在console.log中的值传递到我的文本框。

假设我的列表(结果)如下:

Line 1 abc apple abc

Line 2 abc orange abc

Line 3 abc banana abc

Line 4 abc pear abc

Line 5 abc apple abc

这是我尝试过的:

textarea.value = console.log(`${match}`);

这是我的正则表达式:

const regex = /^(.*(apple|banana).*)$/gm;
const str = result;
let m;

while ((m = regex.exec(str)) !== null) {
    if (m.index === regex.lastIndex) {
        regex.lastIndex++;
    }

    m.forEach((match, groupIndex) => {
      if(match !== 'undefined' && groupIndex > 0)
        console.log(`${match}`);
    });
}

这是我想要在文本框中显示的结果(现在显示在控制台中):

Line 1 abc apple abc

Line 3 abc banana abc

Line 5 abc apple abc

1 个答案:

答案 0 :(得分:1)

您可以使用

var l = "Line 1 abc apple abc\nLine 2 abc orange abc\nLine 3 abc banana abc\nLine 4 abc pear abc\nLine 5 abc apple abc";
var res = l.split("\n").filter(x => /apple|banana/.test(x)).join("\n");
console.log(res);

也就是说:

  • 将文本分成几行
  • 过滤所有包含bananaapple的行
  • 加入匹配的行(使用\n<br>,只要适合您即可。