gpt4 book ai didi

javascript - 多行字符串 findIndex()

转载 作者:行者123 更新时间:2023-12-02 21:26:59 26 4
gpt4 key购买 nike

我正在尝试在字符串中查找多行子字符串。

我的代码:

data = `if (res) {
new PNotify({
title: TAPi18n.__('success'),
text: TAPi18n.__('image_uploaded'),
type: 'info',
styling: 'bootstrap3'
});
}
if (err) {
return new PNotify({
title: TAPi18n.__('error'),
text: err,
type: 'error',
styling: 'bootstrap3'
});
}`;

/*not found...*/
match = `new PNotify({
title: TAPi18n.__('error'),
text: err,
type: 'error',
styling: 'bootstrap3'
})`;
console.log(data);
console.log(match);
console.log(data.indexOf(match));

该行 console.log(data.indexOf(match)); 显示了 -1。我的代码有什么问题吗?我怎样才能进行多行搜索?

最佳答案

问题在于 matchdata 之间的空格数量不匹配。

您可以将 match 转换为允许可变数量空格的正则表达式。

第一个 match.replace() 用于转义字符串中的所有特殊正则表达式字符,第二个将空格转换为 \s+ 因此它将匹配任何数量.

data = `if (res) {
new PNotify({
title: TAPi18n.__('success'),
text: TAPi18n.__('image_uploaded'),
type: 'info',
styling: 'bootstrap3'
});
}
if (err) {
return new PNotify({
title: TAPi18n.__('error'),
text: err,
type: 'error',
styling: 'bootstrap3'
});
}`;


match = `new PNotify({
title: TAPi18n.__('error'),
text: err,
type: 'error',
styling: 'bootstrap3'
})`;
re = new RegExp(match.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&').replace(/\s+/g, '\\s+'));

result = data.match(re);
console.log(result && result.index);

关于javascript - 多行字符串 findIndex(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60714155/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com