Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.03.2010, 11:36
Новичок на форуме
Отправить личное сообщение для Jury Посмотреть профиль Найти все сообщения от Jury
 
Регистрация: 18.03.2010
Сообщений: 5

Поиск русских слов с помощью \b не проходит
Всем привет,

стоит задача найти в строке полное слово. Для этого в RegExp обычно используется опция \b. Но она работает, похоже, только с английскими словами, с русским языком - не хочет.

var str = "Концерт Бони М";
var s = "Бони";

var regExp = new RegExp( s, "gi");
document.write( str.search(regExp) );

var regExp = new RegExp("\\b" + s + "\\b", "gi");
document.write( str.search(regExp) );

Теоретически оба write должны написать 8. Результат второго, однако -1.

Как все-таки правильно сделать поиск полных слов на русском ?
Ответить с цитированием
  #2 (permalink)  
Старый 18.03.2010, 11:49
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,234

Цитата:
Границей слова считается такая позиция в строке, в которой из текущего и последующего символа только один соответствует \w (т.е. один из них соответствует \w, а другой \W). Начало или конец строки также соответствуют границе слова в случае, если первый или, соответственно, последний символ совпадает с \w.
поэтому он не может ис пользоватся для русскоязычных слов, так как множество символов \w зависит от локали, и гарантировано содержит только английский алфавит.
по данному описанию нетрудно составить свою маску для выбора слов
Ответить с цитированием
  #3 (permalink)  
Старый 18.03.2010, 12:05
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

Jury, на форуме уже обсуждалась именно эта тема, 100%, и решение было в наличии. Воспользуйтесь поиском по форуму.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск