Javascript exec()函数

Javascript exec()函数,javascript,jquery,regex,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

我有以下几点

$().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(名称)为空

每个函数都附加到(“input[name^=totalRent_z]”。我需要做什么才能使in只附加到total_rent,而不隐藏totalRent


提前谢谢

如果您只想选择文本输入,而不想选择隐藏的输入,请将选择器更改为筛选依据(名称和类型):

或者,您可以在每个回调函数上检查元素的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];
  }
});

如果您只想选择文本输入,而不想选择隐藏的输入,请将选择器更改为“筛选依据”(名称和类型):

或者,您可以在每个回调函数上检查元素的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];
  }
});
$.pimp(){function();}$.pimp(){function();}