Как определить границу слова с помощью символов, таких как # :. [в регулярных выражениях на JavaScript - PullRequest
1 голос
/ 23 февраля 2012

Я хочу найти это слово: '#foo'

в этой строке:

first foo second #foo

, чтобы только последний '#foo' (с '#')будет соответствовать

Я использую этот код, и он вызывает две ошибки:

var mySearch ='#foo'
var regexp = new RegExp('\\b' + mySearch + '\\b', 'g');
  1. поиск mySearch = 'foo' приведет к совпадению с обоими "foo" (неправильно!должно совпадать только с первым)
  2. поиск mySearch = '#foo' не приведет ни к какому совпадению (неправильно - должен совпадать со вторым)

как правильно написать?

Ответы [ 2 ]

0 голосов
/ 23 февраля 2012

\b в регулярном выражении - граница слова .Он не будет соответствовать границе между пробелом и фунтом #.

Так что ваш regexp должен быть просто

var regexp = new RegExp(mySearch + '\\b', 'g');
0 голосов
/ 23 февраля 2012

Попробуйте:

var regexp = new RegExp('\b' + mySearch + '\b', 'g');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...