'03 ноя 2014'.replace(/(\d+)\s(\W+)\s(\d+)/,mth['$2']) результат undefined
доброго времени суток.
подскажите, почему при подстановке ключа в массив, получаю undefined? var mth=[];mth['ноя']=11; alert('03 ноя 2014'.replace(/(\d+)\s(\W+)\s(\d+)/,'$1.'+mth['$2']+'.$3')) и как правильно построить данный запрос P.S. результат данной замены: 03.undefined.2014, а требуется получить 03.11.2014 |
var mth=[];mth['ноя']=11; alert('03 ноя 2014'.replace(/(\d+)\s(\w+)\s(\d+)/,'$1.'+mth['$2']+'.$3')) |
|
Cache,
Цитата:
Цитата:
Я пока не понял, что должно быть. Может быть Вы, таки, соизволите пояснить? |
krutoy, ноябрь должен быть заменен на 11 (значение ключа массива mth['ноя'])
|
т.е. Из даты '03 ноя 2014' нужно получить '03.11.2014'
\w+ - здесь не подойдет, т.к. \w - это любой лат. символ, а русские буквы не подподают под понятие - латиница |
Cache,
для такой замены используют функцию в replace -- параметры смотрите в документации |
рони, как пользоваться replace() - я знаю, и тут она, как бы и применяется, только чуть в другой форме
меня не устраивает вариант alert('03 ноя 2014'.replace(' ноя ','.11.')); по причине того, что месяцев, как вы понимаете - 12 и городить огород для перебора каждого значения - бред |
Цитата:
Цитата:
|
Цитата:
var mth={};mth['ноя']=11; str='03 ноя 2014' re=/([а-я]+)/ alert(str.replace(re, function(v){return mth[v]})) |
Часовой пояс GMT +3, время: 16:01. |