Как проверить все возможные регистры в строке, используя JS-совпадение? - PullRequest
0 голосов
/ 06 июня 2019

findErr метод должен возвращать true, если какое-либо текстовое значение в условии, найденном в строке, выдает ошибку, которую я добавил. Каков был бы правильный подход для охвата всего сценария обсадной колонны?

const str = "Not Covered Invalid Quantity invalid quantity Invalid quantityfor the product"

const findErrCode = ((item) =>
  item.match(/(Not Covered|Invalid Quantity|invalid quanity|Invalid quantity)/)
);

console.log(findErrCode(str));

Error

  TypeError: Cannot read property 'match' of undefined
        at findErrCode:43:30
        at eval:46:13
        at eval
        at new Promise

Ответы [ 2 ]

1 голос
/ 06 июня 2019

Если вы просто хотите проверить, содержит ли строка «Не охвачено» или «Недействительное количество», не заботясь об их корпусе, вы можете использовать RegExp#test с iфлаг .i инструктирует test игнорировать регистр строки:

const str = "Not Covered Invalid Quantity invalid quantity Invalid quantityfor the product"

const findErrCode = ((item) =>
  /not covered|invalid quantity/i.test(item)
);

console.log(findErrCode("Not Covered Invalid Quantity"));
console.log(findErrCode("InVaLid quAnTity"));
console.log(findErrCode("Valid quantuty"));
0 голосов
/ 06 июня 2019

используйте Regex после преобразования строки в нижний регистр, затем вы сохраняете некоторый уровень контроля над возвращаемой строкой.

var str = "Not Covered Invalid Quantity INVALID quantityfor the product";

var findErrCode = function()
{
var regex = RegExp("invalid quantity"); 
return regex.test(str.toLowerCase());

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...