Javascript .match() 在使用 /gi 标志时不起作用

Javascript .match() not working when using /gi flags

本文关键字:gi 标志 不起作用 match Javascript      更新时间:2023-09-26

在字符串html上使用.match函数时,以下代码返回一个包含匹配项的数组。

    html = '<span><b>123</b>C / <b>456</b>K</span>'
    var matches = html.match('<span><b>(.*?)</b>C / <b>(.*?)</b>K</span>')
    console.log(matches)

但是,添加/g标志后,正则表达式不再返回除null之外的任何内容。它是否被正确使用,如下所示?

    html = '<span><b>123</b>C / <b>456</b>K</span>'
    var matches = html.match('/<span><b>(.*?)</b>C / <b>(.*?)</b>K</span>/g')
    console.log(matches)

从正则表达式文本周围删除引号:

var matches = html.match(/<span><b>(.*?)<'/b>C '/ <b>(.*?)<'/b>K<'/span>/i);

当您使用'/<span><b>(.*?)</b>C / <b>(.*?)</b>K</span>/gi'时,引号中的文本字符串用于匹配。

此外,您还需要转义/并删除g以返回所有匹配项。

它将返回:

["<span><b>123</b>C / <b>456</b>K</span>", "123", "456"]