Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: в replace() поменять регистр символов
 
 автор: oldOld   (20.09.2011 в 07:02)   письмо автору
 
 

Как в replace() поменять регистр символам

str=str.replace(/(r)/g, "$1".toLocaleUpperCase());
str=str.replace(/(r)/g, RegExp.$1.toLocaleUpperCase());
Ни чего не происходит, если написать так, "$1rrr".toLocaleUpperCase(), то меняет только "мой" текст.

Пробовал передать $1-$9 в функцию, передаётся пустая строка, как их правильно передавать?
str=str.replace(/(r)/g, func(RegExp.$1));

function func(str){
alert(str);
};


Где ошибаюсь?

  Ответить  
 
 автор: АЯС   (20.09.2011 в 09:12)   письмо автору
 
   для: oldOld   (20.09.2011 в 07:02)
 

$1...$9 надо сначала создать, и только затем их можно использовать в методе replace ()

Например, так:
var re = new RegExp ('(r)', 'g');
var arr = re.exec(str); //создаём $1...$9

str = str.replace (re, RegExp.$1.toLocaleUpperCase ()); //используем $1...$9
alert (str);

  Ответить  
 
 автор: oldOld   (21.09.2011 в 05:51)   письмо автору
 
   для: АЯС   (20.09.2011 в 09:12)
 

Спасибо, понял.

Только не понятно откуда
$1...$9
беруться тут
var re = new RegExp ('(r)(R)', 'g');
var str = str.replace (re, "$2$1");
Так то работает и я отсюда исходил. В чём разница?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования