3

正規表現を使用して、チェックインとチェックアウトの両方から 2014 年と 2015 年を削除したいと思います。

ここに画像の説明を入力

containsRegex を使用してみましたが、何か間違っていると思います:

$("option:containsRegex(/^((2014)|(2015))$/)").remove();

コード例は次のとおりです。

<select name="check_in" class="required">
    <option value="">Year</option>
        <option value="2013" selected="selected">2013</option>  
        <option value="2014">2014</option>
        <option value="2015">2015</option>
        <option value="2016">2016</option>
</select>

<select name="check_out" class="required">
    <option value="">Year</option>  
        <option value="2013" selected="selected">2013</option>  
        <option value="2014">2014</option>
        <option value="2015">2015</option>   
        <option value="2016">2016</option>
</select>

私はそのようにすることができます:

$('option:contains("2014")').remove();
$('option:contains("2015")').remove();

しかし、実際のファイルはそれよりも複雑であるため、正規表現を使用してそれを実行できるようにしたいと考えています

要約すると、「選択」要素の特定の「オプション」を削除したいと思います。正規表現を使用してどのオプションを選択できるようにするか - この例では、チェックインとチェックアウトの両方から正規表現を使用してオプション「2014」と「2015」を削除します。ありがとうございました。(ここでは、正規表現なしでそれを行いました: http://jsfiddle.net/PJjGb/ )

4

2 に答える 2

4

なぜ正規表現が必要なのかわかりませんが、ここにあります:

$('option').filter(function() {
    return /(2014|2015)/.test(this.value);
}).remove();

フィドル

于 2013-07-23T14:51:08.740 に答える
-1

正規表現自体は次のように単純でなければなりません/(2014|2015)/


次のように、単純な css を使用した単純な jQuery 呼び出しであるのに、なぜ正規表現を使用するのですか?

$('option[value*=2014], option[value*=2015]').remove();


CSS セレクターの詳細

  • [attribute*=value]: 属性に値が含まれます
  • [attribute^=value]: 属性は value で始まります
  • [attribute$=value]: 属性は value で終わります
  • [attribute~=value]: 属性はスペースで区切られたリスト内にあります
  • [attribute|=value]: 属性はダッシュで区切られたリスト内にあります

または、 adeneoによっても提案されているように、RegEx を主張する場合は、jQuery の.filter()メソッドを使用できます。

$('option').filter(function(i) { return /(2014|2015)/.test(this.value); }).remove();



|または| テキストに対してテストしたい場合:

$('option:contains(2014), option:contains(2015)').remove();

|または| 使用して.filter()

$('option').filter(function(i) { return /(2014|2015)/.test($(this).text()); }).remove();



|または| TEXT && VALUEに対するフル コンボテストのステートメントで agian メソッドを使用することをお勧めし.filter()||

$('option').filter(function(i) { return /(2014|2015)/.test(this.value) || /(2014|2015)/.test($(this).text()); }).remove();

于 2013-07-23T14:51:12.523 に答える