ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript 正規表現における角括弧の落とし穴を理解する_JavaScript スキル

JavaScript 正規表現における角括弧の落とし穴を理解する_JavaScript スキル

WBOY
WBOYオリジナル
2016-05-16 15:10:291135ブラウズ

JavaScript で正規表現を使用する場合、括弧内の落とし穴に注意する必要があります。それは、括弧内のメタ文字の問題です。私自身も罠にはまってしまいましたし、ネットで調べると多くの人がこの罠に陥っているので、ざっくりとまとめてみます。

角かっこは正規表現では文字グループ(文字クラス)と呼ばれるものもあり、文字クラスと訳したり、文字セット 。結局のところ、クラスはオブジェクト指向コンピュータサイエンスにおける「クラス」を表すものであると思います。名前が示すように、文字グループは、1 つの位置に表示されるさまざまな文字を表す文字のグループです。ここでは 1 つの位置のみを一致させることに重点を置いていることに注意してください。 (この段落は http://www.cnblogs.com/snandy/p/3662423.html から引用しています)

は任意の文字を取得するために場所を使用したため、[.n]* が使用されました。結果はテストされ、true が返されましたが、それを特定の環境に置くのは間違っています。 。 。 。 。 。ああ、なんてことだ、理解できない。

断固としてテストする var testp = /xx>[.n]*/ testp.test("xx>asdfdfasd"); 後ろに "xx>" を入れても true になります。両側とも「xx>」。これはなぜでしょうか? ? ? ? ? ?

そこで、var testp = /

(xx>[.n]*)/ を変更し、一致する文字列をキャプチャする に括弧 を追加します。 。テスト後、RegExp.$1 が空であることが判明しました。 。 。 。 。空いてますよ。 。 。 。 なぜですか? ? ? ? test の文字列パラメーターが (".....") に変更されると、このドットの文字列が表示されます。したがって、角括弧内のドットはドットのみを表し、他のものやメタキャラクターの分割は表しません。 それ以外の一文字の意味。そこでオンラインで検索しました:

「文字グループ内の多くのメタキャラクターが通常の文字になっています」 メタキャラクターではなく通常の文字になっており、他にも「?」、「+」、および「*」は角括弧内に入れると通常の文字になります。

したがって、この落とし穴にはまだ注意する必要があります。 。 。 。

ちなみに、内の文字は[sS]に置き換えることができます。 上記の JavaScript 正規表現一覧の角括弧内の [ピット] は、エディターが共有するすべての内容です。参考にしていただければ幸いです。また、Script Home をサポートしていただければ幸いです。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。