jQuery正则表达式选择器并从id获取数字

时间:2014-11-13 15:01:09

标签: javascript jquery ajax regex

我有很少的问题和答案的研究表格,我试图从表格元素的id(广播,复选框等等)中捕获ID。 HTML表单是从MySQL动态生成的,这就是为什么id和#name只有共同的价值"问题"。

我有这样的输入:

<input type="text" name="question[1]" id="question-1" value="">
<input type="radio" name="question[2]" id="question-2" value="1"> Foo
<textarea name="question[3]" id="question-3"></textarea>

我需要从id中捕获数字。例如。 从id =&#34;问题3&#34; 中捕获3号。有可能这样做吗?

有我的js代码。当您更改ID已开始且#34;问题 - &#34;的任何表单元素的值时,数据将被发布。它有效,但我需要在ID元素中检测数字,因为我想生成下一个ajax请求(GET)来删除答案(例如/ research / delete-answer /?id = 3)。

$('[id^=question-]').change(function() {
    var formId = <?= $this->form->id; ?>;
    var dataString = $('[id^=question-]').serializeArray();
    $.ajax({
        type: "POST",
        url: "/research/save/?id=" + formId,
        data: dataString,
        success: function(data, status) {
            console.log('Saved [' + status + ']');
            console.log('Data [' + dataString + ']');
        }
    });
});

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

id="[^-]+-(\d+)

试试这个。看看演示。

http://regex101.com/r/pQ9bV3/4

var re = /id="[^-]+-(\d+)/g;
var str = '<input type="text" name="question[1]" id="question-1" value="">\n<input type="radio" name="question[2]" id="question-2" value="1"> Foo\n<textarea name="question[3]" id="question-3"></textarea>';
var subst = '';

var result = str.replace(re, subst);

答案 1 :(得分:0)

$('[id^=question-]').change(function(event) {
    var id = $(event.target).attr('id').replace('question-', '');

应该在触发变更事件的元素的id内给出数字,如果这是你想要的,我不完全确定你在问什么。