Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Регулярное выражение и использование метода replace (https://javascript.ru/forum/misc/43155-regulyarnoe-vyrazhenie-i-ispolzovanie-metoda-replace.html)

Nikola Flamel 24.11.2013 20:49

Регулярное выражение и использование метода 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>

рони 24.11.2013 21:02

Nikola Flamel,
:cray:
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) );

Nikola Flamel 24.11.2013 21:11

Цитата:

Сообщение от рони (Сообщение 282508)
Nikola Flamel,
:cray:
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) );

Спасибо тебе добр, человек, но можно немного объяснить как оно работает?

рони 24.11.2013 21:24

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

Цитата:

Сообщение от рони
function(a,b)

а это всё найденное /\$(\d)/ или $1 или $2 в строке <li id="$1">$2</li> а b это то что в скобках (\d) или 1 или 2

Nikola Flamel 24.11.2013 21:26

Я понял, спасибо!


Часовой пояс GMT +3, время: 17:07.