用javascript搜索字符串中的单词

用javascript搜索字符串中的单词,javascript,Javascript,我通过以下方式正确搜索字符串中的某个单词: let text = jsonDesc.plain_text; const product = 'Producto:'; const resultProduct = text.match(new RegExp(product + '\\s(\\w+)'))[1]; console.log( resultProduct ) // Mesa 但是,如果单词有时是小写,有时是大写,如何搜索字符串呢 我试过这个: var product =

我通过以下方式正确搜索字符串中的某个单词:

let text = jsonDesc.plain_text;

const product = 'Producto:';

const resultProduct = text.match(new RegExp(product + '\\s(\\w+)'))[1];

console.log( resultProduct ) // Mesa
但是,如果单词有时是小写,有时是大写,如何搜索字符串呢

我试过这个:

     var product = 'Producto:';
     var productU = 'PRODUCTO:';

     var resultProduct = text.match(new RegExp(product && productUpper + '\\s(\\w+)'))[1];
以及:

但不起作用,错误:


未捕获(承诺中)TypeError:无法读取VueComponent上null的属性“1”。getAllProducts

您可以使用不区分大小写的匹配(i)作为默认值

在您的情况下,这看起来像
text.match(新的RegExp(product+'\\s(\\w+),'i'))[1]

但是,我建议不要只是将产品附加到表达式中,因为它可能包含特殊的正则表达式字符。例如,现在你有一个冒号在那里,这可能会导致问题。如果
产品
已修复,我会将您的代码重写为

var product = 'Producto';
text.match(new RegExp(product + '\\:\\s(\\w+)', 'i'))[1];
或者,在将其附加到其余部分之前

function escapeRegex(expression) { return expression.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'); }
var product = 'Producto:';
text.match(new RegExp(escapeRegex(product) + '\\s(\\w+)', 'i'))[1];

首先将所有字符串转换为小写,然后检查字符串是否包含搜索的单词

let product = 'Producto:'
let productU = 'PRODUCTO:'
let match = product.toLowerCase().includes(productU.toLowerCase())

console.log(match)
function escapeRegex(expression) { return expression.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'); }
var product = 'Producto:';
text.match(new RegExp(escapeRegex(product) + '\\s(\\w+)', 'i'))[1];
let product = 'Producto:'
let productU = 'PRODUCTO:'
let match = product.toLowerCase().includes(productU.toLowerCase())

console.log(match)