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

sup*_*led 3 regex jquery

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

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

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

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

use*_*716 11

你需要更像这样做:

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

当使用.attr()设置class(或任何属性)时,您可以传递一个具有2个参数的函数.这i是迭代中的当前索引.这cls是当前的值class.

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