Как я могу сопоставить слово в регулярном выражении без учета регистра, когда регулярное выражение находится в двойных кавычках - PullRequest
0 голосов
/ 05 мая 2020
 var regexFromDb  = "^.*(MOUSE).*$";
 var regularExp = new RegExp(regexStringFromDabase)

 var stringToMatch = "i like to eat a moUse";

 var matches = regularExp.exec(stringToMatch ); 
 var result =  (matches != null && stringToMatch == matches[0]);
 console.log(result);

Мне нужно, чтобы регулярное выражение соответствовало любой комбинации upper/lowercase слова 'mouse'.

Однако строка регулярного выражения поступает из базы данных и вставляется туда как двойные кавычки. Таким образом, вы не можете изменять код javascript, только переменную regexFromDb, ее содержимое, и вы также не можете иметь /regexpression/, только то, что является содержимым между двойными кавычками, за исключением двойных кавычек

1 Ответ

0 голосов
/ 05 мая 2020

Если вам нужно только проверить входную строку на соответствие регулярному выражению, RegExp.test является наиболее подходящим, верните логическое значение. RegExp.exec дает вам возвращаемое значение в виде массива со всеми группами захвата и сопоставленными индексами ..

Как указал Ник, вы можете использовать "^.*([Mm][Oo][Uu][Ss][Ee]).*$"

const stringToMatch1 = "i like to eat a MoUsE";
const stringToMatch2 = "i like to eat";

const regexFromDb = "^.*([Mm][Oo][Uu][Ss][Ee]).*$";
const regularExp = new RegExp(regexFromDb)

const matches1 = regularExp.test(stringToMatch1);
const matches2 = regularExp.test(stringToMatch2);

console.log(matches1);
console.log(matches2);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...