Регулярное выражение Jquery - поиск и форматирование похожих частей текста - PullRequest
2 голосов
/ 08 ноября 2011

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

  • Ваш риск низкий.
  • Ваш риск от низкого до умеренного.
  • Ваш риск умеренный.
  • Ваш риск от среднего до высокого.
  • Ваш риск высокий.

Следующий код работает в Jquery, но он находит только первое совпавшее слово, так что «низкое», «умеренное» и «высокое» найдено, но затем оно не соответствует группам слов «низкое или умеренное» или"от среднего до высокого".Как я могу убедиться, что он будет искать каждый вариант, не выходя из регулярного выражения для первого найденного отдельного слова?

var feedBackRiskTxt = currentFeedbackNode.find('Risk[result='+choice+']').text().replace(/(\blow|low to moderate|moderate|moderate to high|high\b.)/, "<span>$1</span>");

Заранее спасибо, Аттила

1 Ответ

2 голосов
/ 08 ноября 2011

Мне кажется, вам нужна опция "g" в вашем регулярном выражении, поэтому она заменит все найденные совпадения.

Кроме того, вы неправильно используете символы \ b, если хотите, чтобы граница слов на обоих концах каждого совпадения и совпадение завершающего периода также не работали должным образом. Вы можете использовать это, чтобы исправить эти проблемы:

var feedBackRiskTxt = currentFeedbackNode.find('Risk[result='+choice+']').text().replace(/\b(low|low to moderate|moderate|moderate to high|high)\./g, "<span class='bold'>$1.</span>");

Вы можете увидеть это здесь: http://jsfiddle.net/jfriend00/Y8Csf/.

...