Javascript JQuery регулярных выражений заменить - PullRequest
1 голос
/ 02 марта 2011

Я пытаюсь создать динамическую панель поиска, и мне нужна помощь.

Сейчас я пытаюсь заменить строку другой строкой, но мне кажется, что это не удается.

Я получаю информациюот пользователя:

var location_keyword = $("#si_user_location").val();

Теперь я хотел бы заменить пробел "" на "|"использовать это в моем регулярном выражении как OR.

Например, если пользователь написал «Турция Аланья», я хочу, чтобы это было «Турция | Аланья», чтобы поиск совпадал как для Турции, так и для Аланьи.

я пробовал что-то подобное, но это не сработало

var location_keyword = $("#si_user_location").val();
location_keyword.replace(" ","|");
var regexp_loc = new RegExp(location_keyword, "i");

Раньше я делал это в PHP с помощью таких выражений, как:

preg_replace('/'.preg_quote($keyword).'/i', "<span>$0</span>", $string)

, и я мог заменить строки на случайный, напримерэто, как я могу сделать это в js?

Я использовал последнее выражение в PHP, чтобы выделить ключевое слово в результатах, что я хотел бы сделать также в js.

надеюсь, что смогуполучить помощь, спасибо заранее!:) 1022

С наилучшими пожеланиями, Александр

Ответы [ 3 ]

3 голосов
/ 02 марта 2011

Есть две проблемы с использованием replace в этой строке:

location_keyword.replace(" ","|");
  • Он не изменяет строку - он возвращает новую строку. Вам нужно переназначить результат вызова на исходную переменную, в противном случае вы не увидите измененную строку.
  • Он заменяет только первое вхождение, если вы не используете регулярное выражение с флагом g (global).

Попробуйте вместо этого:

location_keyword = location_keyword.replace(/ /g, '|');
1 голос
/ 02 марта 2011

Попробуйте это:

location_keyword  = location_keyword.replace(/\s+/,"|");
0 голосов
/ 02 марта 2011

Это должно работать нормально:

location_keyword.replace(/ /g,"|");

Надеюсь, это поможет! :)

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