如何通过使用正则表达式的jQuery获取unqie ID的无线电属性名称?

时间:2016-11-10 14:58:24

标签: jquery ajax regex

我有以下输入元素:

<input name="option[100]" value="first" type="radio" checked="checked"/>
<input name="option[100]" value="second" type="radio" />
<input name="option[100]" value="third" type="radio"/>

我能够使用

    myOption = $('input[name^=\'option\']:checked').val();

获取单选按钮的值。

但是,我想知道 100 的名称ID,我怎么能得到它?

我想提交ajax作为数组,就像发布表单一样

 $.ajax({
            url: 'product/product/add',
            type: 'post',
            data: { product_id: product_id,  option: myOption },
            dataType: 'text',

PHP让POST需要$myOption[100]=first;

1 个答案:

答案 0 :(得分:1)

您可以使用attr('name')获取元素名称并使用非常简单的正则表达式 - /\d+/

&#13;
&#13;
var myOption_name = $('input[name^=\'option\']:checked').attr('name');
console.log(myOption_name.match(/\d+/)[0]);
// or
// console.log(myOption_name.replace(/^option\[(\d+)]$/, "$1"));
// or
// console.log(myOption_name.match(/^option\[(\d+)]$/)[1]);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input name="option[100]" value="first" type="radio" checked="checked"/>
<input name="option[100]" value="second" type="radio" />
<input name="option[100]" value="third" type="radio"/>
&#13;
&#13;
&#13;

如果您想确保名称符合您的特定模式,您可以使用

/^option\[(\d+)]$/

使用matchreplace(请参阅上面代码段中的注释代码)。

详细

  • ^ - 字符串开头
  • option\[ - option[子字符串
  • (\d+) - 第1组捕获1个或多个数字
  • ] - 结束]
  • $ - 字符串结束。