Найти подходящие строки с помощью Regex в Javascript? - PullRequest
1 голос
/ 11 сентября 2009

У меня есть требование отфильтровать некоторые из указанных строк в данной строке, используя regx .. Это может быть легко достигнуто с помощью string.macth (). Но мое требование немного сложнее.

У меня есть набор ключевых слов, которые должны быть определены в данной строке. (Моя входная строка содержит только одно ожидаемое ключевое слово). Я должен сформировать строку regX, и это определит, какое ключевое слово доступно в моей входной строке.

ниже образца ввода и вывода

  var InString ="one_sam_get_2384823_34534";
  var keyList  = "one|two|three|four|five";

здесь мой ожидаемый результат один

или

  var InString ="odfdfg_three_get_2384823_34534";
  var keyList  = "one|two|three|four|five";

здесь мой ожидаемый результат - три

ранее я использовал что-то вроде этого "/ ^ one / i" , чтобы выяснить наличие одного ключевого слова.

Но я поражен этим подходом с несколькими ключевыми словами. Я ценю любые указания.

Ответы [ 4 ]

3 голосов
/ 11 сентября 2009

Вы можете использовать keyList для создания объекта RegExp:

InString.match(new RegExp(keyList, "i"))
1 голос
/ 11 сентября 2009

Изменить:

function findKey (input, keyList) {
  var result = input.match(new RegExp(keyList));

  if (result) {
    return result[0];
  }
}
0 голосов
/ 11 сентября 2009

почему вы не используете регулярное выражение типа

" / (один | два | три | четыре | пять) / я "

Приветствия

0 голосов
/ 11 сентября 2009

Используйте регулярное выражение вида var regex = / (один | два | три) /;

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