Javascript exec()函数

时间:2009-08-10 18:38:11

标签: javascript jquery regex

我有以下

$().ready(function() {
    $("input[name^=totalRent_]").each(function()
    {    var input = $(this);  
         var name = input.attr('name');  
         var num = /\d+$/.exec(name)[0]; 

我的html表单有:

    <input type="text" name="totalRent_1"  value="" /> <br />
    <input type="hidden" name="totalRent_1_hidden" /><br />
    <hr />
    <input type="text" name="totalRent_2"  value="" /> <br />
    <input type="hidden" name="totalRent_2_hidden" /><br />
    <hr />
    <input type="text" name="totalRent_3"  value="" /> <br />
    <input type="hidden" name="totalRent_3_hidden" /><br />
    <hr />

现在,我收到一条javascript错误说: /\d+$/.exec(name)为空

每个函数都附加到(“input [name ^ = totalRent_]”)。我需要做什么,以便只附加到total_rent而不是使用totalRent _..._隐藏?

提前致谢。

1 个答案:

答案 0 :(得分:1)

如果您只想选择文字输入而不是隐藏文字输入,请将选择器更改为按multiple attributes(名称和类型)进行过滤:

$('input[name^=totalRent_][type=text]')

或者您可以在每个回调函数上检查元素的type属性:

$('input[name^=totalRent_]').each(function(){
  var input = $(this);  
  if (input.attr('type') == 'text'){
    var name = input.attr('name');  
    var num = /\d+$/.exec(name)[0];
  }
});