Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.07.2009, 00:48
Интересующийся
Отправить личное сообщение для FiMko Посмотреть профиль Найти все сообщения от FiMko
 
Регистрация: 24.06.2009
Сообщений: 14

Backreferences в JavaScript Regular Expressions
Ребята, привет всем!

Кто-нибудь работал с запоминанием найденных с помощью регулярных выражений подстрок в JavaScript (так называемые backreferences)?

Я пробую вот этот код (взято отсюда):
var re = /(\w+)\s(\w+)/;
var str = "Михаил Булгаков";
document.write(str.replace(re, "$2, $1"))

соответственно, ожидаю получить "Булгаков, Михаил", получаю по-прежнему "Михаил Булгаков".

Подскажите, пожалуйста, в чем проблема?
Ответить с цитированием
  #2 (permalink)  
Старый 26.07.2009, 04:37
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

\w = [A-Za-z0-9_]
Ответить с цитированием
  #3 (permalink)  
Старый 26.07.2009, 12:32
Интересующийся
Отправить личное сообщение для FiMko Посмотреть профиль Найти все сообщения от FiMko
 
Регистрация: 24.06.2009
Сообщений: 14

Сообщение от Riim Посмотреть сообщение
\w = [A-Za-z0-9_]
Логично, не учёл Спасибо!

Если кому-нибудь осталось непонятным, то:
var re = /(\w+)\s(\w+)/i;
var str = "Mikhail Bulgakov";
document.write(str.replace(re, "$2, $1"));
// -> Bulgakov, Mikhail

либо
var re = /([а-я]+)\s([а-я]+)/i;
var str = "Михаил Булгаков";
document.write(str.replace(re, "$2, $1"));
// -> Булгаков, Михаил

Странно, что автор статьи даже не перепроверил свое творчество.

Последний раз редактировалось FiMko, 26.07.2009 в 12:37.
Ответить с цитированием
  #4 (permalink)  
Старый 26.07.2009, 13:24
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Вместо а-я и модификатора "i" лучше писать А-Яа-я. Например, в Chrome у меня, после очередного его обновления (2.0.172.37), модификатор "i" к русским символам применяться перестал .
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с javascript andruhin Общие вопросы Javascript 12 04.05.2012 10:05
Собрался силами, собираюсь освоить Javascript walker Общие вопросы Javascript 14 20.03.2012 16:17
Программист на JavaScript (удалённо) Vadym Работа 1 28.01.2009 13:57
Компании Яндекс нужен Javascript гуру Yandex Работа 17 16.12.2008 16:46
Нужен Старший разработчик JavaScript Yandex Работа 17 19.08.2008 16:43