1

次の正規表現があります。これは、入力時に http:// を含むことに基づいて URL を検出します。

(http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)

したがって、上記でhttp://www.google.comと入力すると、これはうまく機能します。ただし、http:// アウトや www. 上記をURLとして検出しません。

http:// または www なしで URL を受け入れるように上記を適応させる簡単な方法はありますか。正規表現がどのように完全に機能するのか本当にわかりませんか?私は次のサイトで遊んでいます:

http://regexpal.com/
4

2 に答える 2

1

http:// と www を作成できます。オプション。疑問符「?」で実現できます。これは、パターンが 0 回または 1 回出現することを意味します。

((http|https|ftp|ftps)\:\/\/)?(www\.)?[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)
于 2013-10-18T16:25:06.390 に答える
0

より完全な正規表現一致の場合:

/^([a-z][a-z0-9\*\-\.]*):\/\/(?:(?:(?:[\w\.\-\+!$&'\(\)*\+,;=]|%[0-9a-f]{2})+:)*(?:[\w\.\-\+%!$&'\(\)*\+,;=]|%[0-9a-f]{2})+@)?(?:(?:[a-z0-9\-\.]|%[0-9a-f]{2})+|(?:\[(?:[0-9a-f]{0,4}:)*(?:[0-9a-f]{0,4})\]))(?::[0-9]+)?(?:[\/|\?](?:[\w#!:\.\?\+=&@!$'~*,;\/\(\)\[\]\-]|%[0-9a-f]{2})*)?$/xiS

于 2013-10-18T16:28:18.953 に答える