使用Javascript和jQuery更改名称的一部分

时间:2013-01-30 09:54:05

标签: javascript jquery

我的页面上有一些select元素,我想删除部分名称。

他们的名字看起来像这样:

ctl02$fieldname

我要删除的部分是:ctl02$。所以它只留下fieldname

我要移除的部分始终以ctl开头,然后是以$结尾的两位数字。

我使用以下代码尝试了它,但是没有做到这一点:

$(".elements select").each(function() {
    this.setAttribute("name", this.getAttribute("name").replace(/ctl([0-9]+)\$$/, ""));
});

任何人都知道我该怎么做?

以下是演示:http://tinkerbin.com/Klvx5qQF

3 个答案:

答案 0 :(得分:4)

正则表达式中只是一个错误。我不知道为什么你加倍$,正则表达式末尾的$具有不符​​合你想要的特定含义。

这是固定版本:

$(".elements select").each(function() {
    this.setAttribute("name", this.getAttribute("name").
       replace(/ctl[0-9]+\$/, ""));
});

你不需要捕捉任何东西,这就是为什么我也删除了括号。

如果您想确保仅在名称开头处删除ctl内容时,可以将正则表达式更改为/^ctl[0-9]+\$/

答案 1 :(得分:4)

我想这里没有必要使用正则表达式:

$(".elements select").attr("name", function(i, attr) {
    return attr.substring(attr.indexOf("$") + 1);
});

答案 2 :(得分:0)

使用它:

$(function() {
    $("select").each(function() {
        var name = $(this).attr("name");

        $(this).attr("name", name.replace(/(ctl[0-9]+)/g, ""));

    });
});

请参阅演示:link