jQuery:replace()类名/正则表达式

时间:2011-01-05 16:42:33

标签: jquery regex

我正在尝试编写一行jquery,它找到一个以“a \ d”(字母a和数字)开头的类的输入,并用另一个数字替换该数字。

这是我试过的,有没有人注意到为什么这不起作用?

$('form').find('input[class^="a\d"]').replace(/a\d+/,'a22');

请注意:这是许多中的一行,我已经提取了这一行,因为它是我遇到麻烦的地方。

2 个答案:

答案 0 :(得分:10)

你需要更多这样做:

$('form').find('input[class^="a"]').attr('class', function(i,cls) {
    if( /a\d/.test( cls ) ) {
        return cls.replace(/a\d+/,'a22');
    }
});

使用.attr()设置class(或任何属性)时,可以向其传递一个包含2个参数的函数。 i是迭代中的当前索引。 clsclass的当前值。

return值将用于更新class。如果没有返回任何内容,则不会有任何更改。

答案 1 :(得分:0)

试试这个

var regExp = /(a\d+)(.*)?/;
$('form').find('input[class^="a"]').each(
    function()
    {
        var el = this;
        var className = el.replace(regExp, "a22$2");
        el.className = className;
    }
);