Javascript соответствия с подстановочными - PullRequest
0 голосов
/ 07 июня 2011

Привет и спасибо за внимание.

Мне нужно получить все входные данные формы из формы, используя javascript, входные данные названы так:

<input name="site[1]" type="text" size="3" id="sitesinput" value="0" />
<input name="site[2]" type="text" size="3" id="sitesinput" value="0" />
<input name="site[3]" type="text" size="3" id="sitesinput" value="0" />
<input name="site[4]" type="text" size="3" id="sitesinput" value="0" />

......

<input name="site[10]" type="text" size="3" id="sitesinput" value="0" />

и у меня есть следующее, чтобы забрать их и добавить значения вместе, но это не работает, что я делаю не так:

function site_change() {
         var sites= document.getElementById('sitesinput').value;    
         var sum= 0;
         var inputs= document.getElementById('inputsite').getElementsByTagName('input');
         for (var i= inputs.length; i-->0;) {
            if (inputs[i].getAttribute('name').match(/^site[\d+$]/))
            {
             var v= inputs[i].value.split(',').join('.').split(' ').join('');
             if (isNaN(+v))
                 alert(inputs[i].value+' is not a readable number');
             else
                 sum+= +v;
            }
         }
         var phones= document.getElementById('phonesinput').value;
         document.getElementById('siteresult').innerHTML = phones-sum;
    };

Функция соответствия неверна?

Спасибо, B.

1 Ответ

1 голос
/ 07 июня 2011

Ваше регулярное выражение немного отключено (использование [] блоков символов, но вы действительно хотите найти квадратные скобки, чтобы их нужно было экранировать. И $ должен быть в конце).Попробуйте:

.match(/^site\[\d+\]$/)
...