Javascript与通配符匹配

时间:2011-06-07 09:47:27

标签: javascript forms match textinput

嗨,谢谢你。

我需要使用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;
    };

匹配功能是否错误?

谢谢, 乙

1 个答案:

答案 0 :(得分:1)

你的正则表达式稍微偏离(使用[]块字符,但你实际上想找到方括号,因此需要对它们进行转义。$需要在最后。尝试:

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