Javascript 与通配符匹配
Posted
技术标签:
【中文标题】Javascript 与通配符匹配【英文标题】:Javascript match with wildcard 【发布时间】:2011-09-09 22:40:28 【问题描述】:您好,感谢您的关注。
我需要使用 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;
;
Match函数错了吗?
谢谢, B.
【问题讨论】:
为什么你所有的输入都有相同的ID?为什么要创建变量sites
然后不使用它?
对,您应该为所有人设置不同的 id,或者使用包含所有这些的 id 的 division
,然后使用 name
属性创建 select
。
【参考方案1】:
您的正则表达式有点偏离(使用[]
阻止字符,但您实际上想找到方括号,因此需要对其进行转义。$
需要在末尾)。试试:
.match(/^site\[\d+\]$/)
【讨论】:
辛苦了 - 谢谢!顺便说一句 - 它们的 ID 并不相同 - 懒惰的复制和粘贴我很害怕,并且 var 站点是在测试某些东西时遗留下来的!!!!!!以上是关于Javascript 与通配符匹配的主要内容,如果未能解决你的问题,请参考以下文章