2

私は今やったが、2回.removeClass()関数を呼び出さなければならない

これをマージして、1回の正規表現呼び出しで結果を見つけるにはどうすればよいですか?

HTML:

<div class="one-abc two-cba three-bac"></div>

jQuery:

$('div')
  .removeClass(function(i,c){var m=c.match(/one-[a-z]{0,5}/);return m?m[0]:m;})
  .removeClass(function(i,c){var m=c.match(/two-[a-z]{0,5}/);return m?m[0]:m;});

デモ: http: //jsbin.com/umoded/1/edit


検索には、複数のクラスのクラス名が含まれています

正規表現で一致するクラスを削除します

4

2 に答える 2

4

両方の式を 1 つに結合し、 を使用しgて、一致を結合します。

  var m = c.match(/(one-[a-z]{0,5}|two-[a-z]{0,5})/g);
  return m ? m.join(' ') : m;

http://jsfiddle.net/ExplosionPIlls/mnYpB/

于 2013-02-15T13:11:05.253 に答える
3

api.jquery.comから:

次のように、一致する要素のセットから、スペースで区切って一度に複数のクラスを削除できます。
$('p')。removeClass('myClass yourClass')

->

.removeClass(function(i,c){
    var m=c.match(/one-[a-z]{0,5}/);
    var n=c.match(/two-[a-z]{0,5}/);
    return m+" "+n;});
于 2013-02-15T13:13:05.990 に答える