JS RegExp. Не работает граница слова "\b"

Тема в разделе "Другие языки", создана пользователем failometr, 10 фев 2011.

Модераторы: Цукер
  1. failometr

    failometr Постоялец

    Регистр.:
    30 апр 2009
    Сообщения:
    128
    Симпатии:
    45
    Почему-то не захватывает русские слова с границами слов.
    Пробую код в опере
    HTML:
    <script>
    my_string = "nulled форум";
    document.write( my_string.replace( /форум\b/ , '') );
    </script>
    на выходе та же строка.
    На форуме видел, что на php решали проблему через установку setlocale, но на js нет такой функции. Должно же как-то проще решаться, без всяких доп. самописных функций?
     
  2. polyetilen

    polyetilen Заблокирован

    Регистр.:
    10 авг 2006
    Сообщения:
    814
    Симпатии:
    474
    \b работает только с A-Za-z0-9_, альтернативный вариант будет
    HTML:
    
    document.write(my_string.replace(/(^|\s)форум(?=\s|$)/g, ''));
    
     
    latteo и failometr нравится это.
  3. failometr

    failometr Постоялец

    Регистр.:
    30 апр 2009
    Сообщения:
    128
    Симпатии:
    45
    Там правда может быть и запятая или любой другой знак.
    Код:
    <script>
    my_string = "nulled !форум!!@#";
    document.write(my_string.replace(/(^|[!@#$%^&*\(\)<>\.,\-\_\+\=\{\}\[\]\^]|\s)форум([!@#$%^&*\(\)<>\.,\-\_\+\=\{\}\[\]\^]|\s|$)/g, '$1$2'));
    </script>
    Ну и прочие спецсимволы, если есть такие.
    Спасибо, суть я понял. Тыцку тыцнул)
     
    polyetilen нравится это.