0

jqueryを介してモジュールのクラス名を変更しようとしていますが、現在、この正規表現があります

/module-\w+/gi

こんな風に使われる

//// Removes all module-xxxx classes
var classes = $target[0].className.replace(/module-\w+/gi, '');

これは今までうまくいきましたが、モジュールクラスの構造を変更して、これに似るようにする必要があります

<div class="module">
    <div class="module-header">
         <div class="module-header-content module-blue ..."></div>
    </div>
    <div class="module-content"></div>
</div>

... は、他のクラス名が存在する可能性があることを意味します。

module-blue (module-default、module-green、module-whatever の可能性がありますが、常にmodule-COLORNAMEの形式)のみに一致し、 module-header-contentと一致しないように RegEx を変更する必要があります。同じように。

jquery は次のクラス名を選択します: module-header-content module-blue

4

1 に答える 1

1
var classes = $target[0].className.replace(/\bmodule-\w+(?!-)\b/gi, '');

単語境界では、式は のグループ全体に一致し、その後にダッシュが続かないmodule-少なくとも 1 つの文字が続く必要があります。

http://jsfiddle.net/ExplosionPIlls/WqbKJ/

于 2013-01-30T01:58:32.930 に答える