Backreferences в JavaScript Regular Expressions
Ребята, привет всем!
Кто-нибудь работал с запоминанием найденных с помощью регулярных выражений подстрок в JavaScript (так называемые backreferences)? Я пробую вот этот код (взято отсюда): var re = /(\w+)\s(\w+)/; var str = "Михаил Булгаков"; document.write(str.replace(re, "$2, $1")) соответственно, ожидаю получить "Булгаков, Михаил", получаю по-прежнему "Михаил Булгаков". Подскажите, пожалуйста, в чем проблема? |
\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")); // -> Булгаков, Михаил Странно, что автор статьи даже не перепроверил свое творчество. |
Вместо а-я и модификатора "i" лучше писать А-Яа-я. Например, в Chrome у меня, после очередного его обновления (2.0.172.37), модификатор "i" к русским символам применяться перестал :( .
|
Часовой пояс GMT +3, время: 07:32. |