使用正则表达式替换类名

Emi*_*nte 3 javascript

我正在尝试与正则表达式一起使用classList.replace()我的目标是用像badge -success这样的其他值替换像badge-something这样的表达式。

我试过这个:

element.classList.replace(/badge-*/i, 'badge-success')
Run Code Online (Sandbox Code Playgroud)

但它返回false并且不会改变任何内容。我缺少什么?

mel*_*ene 6

Element.classList是一个DOMTokenList(不是字符串)。

DOMTokenList.replace需要两个字符串,而不是正则表达式。第一个参数是您要替换的确切类名。不支持模式。

如果你想使用正则表达式,你需要一个字符串:

element.className = element.className.replace(/(^|\s)badge-\S+/g, '$1badge-success');
Run Code Online (Sandbox Code Playgroud)