このJavaScriptの正規表現を理解しようとしています。
この正規表現の部分について誰か説明してもらえますか?
location.href.match(/^http:\/\/(www\.)?example.com/i)
このJavaScriptの正規表現を理解しようとしています。
この正規表現の部分について誰か説明してもらえますか?
location.href.match(/^http:\/\/(www\.)?example.com/i)
それをビットに分割しましょう:
^http:\/\/
= 文字列は で始まる必要がありhttp://
ます。バックスラッシュがあるのは、そうでない場合、スラッシュが正規表現パターンを終了するためです。
(www\.)?
=www.
存在する場合に一致します (それが疑問符の目的です)
example.com
= 文字列の後に続く必要がありますexample.com
i
= 大文字と小文字を区別しない
したがって、これらは可能な一致です:
http://example.com
http://www.example.com
http://www.EXAMPLE.COM
http://www.example.com/some/page/
残念ながら、正規表現は HTTPS プロトコルと一致しません。www.
疑問符の使用に適用されるのと同じ方法を使用できます。
/^http(s)?:\/\/(www\.)?example.com/i
^ - start of line
http: - http:
\/\/ - //
(www\.)? - www. 0 or 1 time
example.com - example.com
i
フラグは、式全体が大文字と小文字を区別しないためHTTP://WWW.EXAMPLE.COM
、一致することを意味します。
/^http:\/\/(www\.)?example.com/i
1) ^ - carret (matches start of line / string)
2) http: - matches the actual 'http:' string
3) \/\/ - matches // (needs escaping with \)
4) (www\.)? - can contain or not the string 'www.' (? = 0 or 1 times)
5) example.com - matches the actual 'example.com' string
6) trailing i - case insensitive
正規表現:
/^http:\/\/(www\.)?example.com/i
JavaScriptで説明されているように、正規表現は次の形式です(http://www.w3schools.com/js/js_obj_regexp.asp):
/pattern/modifiers
だからパターン:
^http:\/\/(www\.)?example.com
^
皮切りに
http:\/\/
スラッシュをエスケープした「http://」
(www\.)?
0 回または 1 回の「www.」
example.com
「例」、改行を除く任意の文字、「com」
「example.com」のみが必要な場合は、example\.com
修飾子 :
i
大文字小文字を区別しません