レッスンに戻る

Java[^script]

regexp /Java[^script]/ があります。

これは、文字列 Java 内の何かと一致しますか? 文字列 JavaScript 内ではどうですか?

答え: いいえ、はい

  • スクリプト Java では、何も一致しません。それは、[^script] が、「指定されたもの以外の任意の文字」を意味するからです。そのため、regexp は "Java" の後にその記号が続くものを探しますが、文字列の終わりで、それ以降の記号はありません。

    alert( "Java".match(/Java[^script]/) ); // null
  • はい。それは、[^script] の部分が「S」という文字と一致するからです。これは script のいずれとも一致しません。regexp は大文字と小文字を区別するため(i フラグがありません)、"S""s" とは異なる文字として扱います。

    alert( "JavaScript".match(/Java[^script]/) ); // "JavaS"