Часть строки, нечувствительная к регистру в JavaScript, опция Regex (? I) не работает
Оки, прежде чем вы все администраторы начнете отмечать этот вопрос дубликат ссылаясь на этот вопрос такКак сделать регулярное выражение без учета регистра? Я хочу уточнить, что другой упомянутый вопрос не отвечает моей проблеме.
Я использую Nodejs для создания приложения, в котором мне нужно обрабатывать определенные строки. Я использовал объект JS "RegExp" для этой цели. Я хочу, чтобы только часть моей строки в регулярном выражении была без учета регистра, вот мой код
var key = '(?i)c(?-i)ustomParam';
var find = '\{(\\b' + key +'\\b:?.*?)\}';
var regex = new RegExp(find,"g");
Но это ломается со следующей ошибкой
SyntaxError: Invalid regular expression: /{(\b(?i)c(?-i)ustomParam\b:?.*?)}/
Я получу ключ от какого-то внешнего источника, такого как redis, и строку для сопоставления из другого внешнего источника, я хочу, чтобы первый алфавит был нечувствительным к регистру, а остальные алфавиты чувствительными к регистру.
Когда я получу ключ из внешнего источника, я добавлю (? I) перед первым алфавитом и (? -I) после первого алфавита.
Я даже попробовал это только для начала, но это также не сработало
var key ='customParam';
var find = '(?i)\{(\\b' + key +'\\b:?.*?)\}(?-i)';
var regex = new RegExp(find,"g");
Я знаю, что могу использовать флаги «i» вместо вышеупомянутых, но это не мой вариант использования. Я сделал это только для проверки.