Проблема в том, что количество пробелов не совпадает между match
и data
.
. Вы можете преобразовать 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);