Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   '03 ноя 2014'.replace(/(\d+)\s(\W+)\s(\d+)/,mth['$2']) результат undefined (https://javascript.ru/forum/misc/52099-%2703-noya-2014%27-replace-%5Cd-%5Cs-%5Cw-%5Cs-%5Cd-mth%5B%27%242%27%5D-rezultat-undefined.html)

рони 04.12.2014 01:32

Cache,
var mth = [];
mth["ноя"] = 11;
alert("03 ноя 2014".replace(/(\d+)\s(\W+)\s(\d+)/, function(a, b, c, d) {
    return mth[c] ? b + "." + mth[c] + "." + d : a
}));

Cache 04.12.2014 01:39

рони, спасибо, но все же, по каким причинам нельзя подставить $2 как ключ массива?

Cache 04.12.2014 01:40

krutoy, вам тоже спасибо

рони 04.12.2014 02:38

Cache,
$2 часть шаблона второй строки которую нужно заменить -- на содержимое второй скобки первой строки - строка слева меняется на строку справа -- собрали строку справа из '$1.'+mth['$2']+'.$3' получили '$1.undefined.$3' и после перезаписали $1 и $3 на части из первой строки '03 ноя 2014'

Cache 04.12.2014 03:22

рони, спасибо, думаю понял, в чем ошибка


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