полное совпадение слов в javascript - PullRequest
24 голосов
/ 10 февраля 2010

Я использую JavaScript на своей веб-странице. Я пытаюсь найти одно слово в текстовом поле. Скажем, я ищу: «я», я должен найти все «я» в тексте, но не найти «меммм», скажем.

Я использую поиск по javascript («выражение моего регулярного выражения») для выполнения текущего поиска (без успеха).

Спасибо!

Редактировать: После нескольких предложений по использованию переключателей \ b [которые, похоже, не работают], я публикую пересмотренное объяснение моей проблемы:

блин, по какой-то причине это, похоже, не помогает. Предположим, что следующий текст поиска javascript:

<script type='text/javascript'>
var lookup = '\n\n\n\n\n\n2    PC Games        \n\n\n\n';
lookup  = lookup.trim() ;
alert(lookup );
                var tttt = 'tttt';
                alert((/\b(lookup)\b/g).test(2));

</script>

Перемещение линий необходимо

Ответы [ 4 ]

40 голосов
/ 10 февраля 2010

Чтобы использовать динамическое регулярное выражение, см. Мой обновленный код:

new RegExp("\\b" + lookup + "\\b").test(textbox.value)

Ваш конкретный пример задом наперед:

alert((/\b(2)\b/g).test(lookup));

Regexpal

Regex Object

20 голосов
/ 10 февраля 2010

Используйте утверждение границы слова \b:

/\bme\b/
6 голосов
/ 14 августа 2014

Вы можете использовать следующий код:

var stringTosearch ="test ,string, test"; //true
var stringTosearch ="test string test"; //true
var stringTosearch ="test stringtest"; //false
var stringTosearch ="teststring test"; //false

if (new RegExp("\\b"+"string"+"\\b").test(stringTosearch)) {
  console.log('string found');
  return true;
} else {
  return false;
}
2 голосов
/ 10 февраля 2010
<script type='text/javascript'>
var lookup = '\n\n\n\n\n\n2    PC Games        \n\n\n\n';
lookup  = lookup.trim() ;
alert(lookup );
                var tttt = 'tttt';
                alert((/\b(lookup)\b/g).test(2));

</script>

Сложно сказать, что ты здесь пытаешься сделать. Что должна делать переменная tttt?

В какой строке вы пытаетесь найти? Вы пытаетесь найти 2 в строке lookup? Тогда вам захочется:

/\b2\b/.test(lookup)

Следующее из вашего регулярного выражения создает регулярное выражение, состоящее из границы слова, за которой следует строка "lookup" (не значение, содержащееся в переменной lookup), за которой следует граница слова. Затем он пытается сопоставить это регулярное выражение со строкой "2", полученной преобразованием числа 2 в строку:

(/\b(lookup)\b/g).test(2)

Например, следующее возвращает true:

(/\b(lookup)\b/g).test("something to lookup somewhere")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...