Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.11.2013, 20:49
Интересующийся
Отправить личное сообщение для Nikola Flamel Посмотреть профиль Найти все сообщения от Nikola Flamel
 
Регистрация: 10.11.2013
Сообщений: 10

Регулярное выражение и использование метода replace
Здравствуйте, есть код:

function change(){
var mainArray=[];

for(var i=0;i<arguments.length;i++){
mainArray[i]=arguments[i];
console.log(mainArray[i]);
}

return mainArray[0].replace(/\$(\d)/g,function(){

/////////////

});

}

var numberOne = 1,
numberTwo = 2;

console.log( change('<li id="$1">$2</li>', numberOne, numberTwo) );

Функция change первым параметром принимает всегда строку, и дальше любое количество аргументов.Регулярным выражением выбираю все $1,$2 и т.д. Количество %№ равно количеству входных параметров (не считая первого) ,вопрос вот в чем, как в данном примере заменить
$1 на numberOne и $2 на numberTwo. Что бы результат был такой <li id=1">2</li>
Ответить с цитированием
  #2 (permalink)  
Старый 24.11.2013, 21:02
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

Nikola Flamel,

function change(){
 var mainArray=[];

 for(var i=0;i<arguments.length;i++){
 mainArray[i]=arguments[i];
 console.log(mainArray[i]);
 }

 return mainArray[0].replace(/\$(\d)/g,function(a,b){

 return mainArray[b]

 });

 }

 var numberOne = 1,
 numberTwo = 2;

 alert( change('<li id="$1">$2</li>', numberOne, numberTwo) );
Ответить с цитированием
  #3 (permalink)  
Старый 24.11.2013, 21:11
Интересующийся
Отправить личное сообщение для Nikola Flamel Посмотреть профиль Найти все сообщения от Nikola Flamel
 
Регистрация: 10.11.2013
Сообщений: 10

Сообщение от рони Посмотреть сообщение
Nikola Flamel,

function change(){
 var mainArray=[];

 for(var i=0;i<arguments.length;i++){
 mainArray[i]=arguments[i];
 console.log(mainArray[i]);
 }

 return mainArray[0].replace(/\$(\d)/g,function(a,b){

 return mainArray[b]

 });

 }

 var numberOne = 1,
 numberTwo = 2;

 alert( change('<li id="$1">$2</li>', numberOne, numberTwo) );
Спасибо тебе добр, человек, но можно немного объяснить как оно работает?
Ответить с цитированием
  #4 (permalink)  
Старый 24.11.2013, 21:24
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

Nikola Flamel,
replace Функция замены

Сообщение от рони
function(a,b)
а это всё найденное /\$(\d)/ или $1 или $2 в строке <li id="$1">$2</li> а b это то что в скобках (\d) или 1 или 2
Ответить с цитированием
  #5 (permalink)  
Старый 24.11.2013, 21:26
Интересующийся
Отправить личное сообщение для Nikola Flamel Посмотреть профиль Найти все сообщения от Nikola Flamel
 
Регистрация: 10.11.2013
Сообщений: 10

Я понял, спасибо!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Регулярное выражение и метод test tsigel Общие вопросы Javascript 3 30.08.2013 13:47
регулярное выражение literator Ваши сайты и скрипты 1 18.08.2013 18:24
Регулярное выражение: любой символ, включая перевод строки Gleb Общие вопросы Javascript 3 28.07.2011 12:15
Регулярное выражение ошибка "invalid quantifier", JavaScript, replace. abstract Общие вопросы Javascript 6 20.09.2010 13:51
регулярное выражение theo_ Общие вопросы Javascript 15 21.06.2010 10:29