これは機能します:
function f() {
$("[class]").each(function() {
this.className = this.className.replace(/(super-\d+)(-finished)?/, function(a, b, c) {
if (c == "") {
return a + "-finished";
}
return a;
});
});
}
f();
f();
f();
console.log($("[class]").map(function() {
return this.className;
}));
これは、単一の要素にそのようなクラスが多数ある場合でも、 toのすべての出現を置き換えます。super-<some digits>
super-<same digits>-finished
入力:
<div class="super-11"></div>
<div class="super-not-11"></div>
<div class="yes-super-111"></div>
出力:
<div class="super-11-finished"></div>
<div class="super-not-11"></div>
<div class="yes-super-111-finished"></div>
http://jsfiddle.net/9RFn4/1
編集: で終わるクラスを除外するように更新されました-finished
。