www.
同様の質問はたくさんありますが、URLに、などがないという問題には答えられませんhttp://
。私が探しているのは、文字列に任意のタイプのURLを含むURLが含まれているかどうかを確認することです。Twitterは、ツイートを送信するときにこれを行います。
使用可能なURLには、次のものが含まれますが、これらに限定されません。
- Google COM
- images.google.com
- http://google.com
- http://www.google.com
- http://www.google.com/anyquerystring
私がDaringFireballから試した2つの正規表現とこの質問:
var regex = /\b((?:https?:\/\/|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'\"\\.,<>?\u00AB\u00BB\u201C\u201D\u2018\u2019]))/i;
var regex = /(?:<\w+.*?>|[^=!:'"\/]|^)((?:https?:\/\/|www\.)[-\w]+(?:\.[-\w]+)*(?::\d+)?(?:\/(?:(?:[~\w\+%-]|(?:[,.;@:][^\s$]))+)?)*(?:\?[\w\+%&=.;:-]+)?(?:\#[\w\-\.]*)?)(?:\p{P}|\s|<|$)/;
これが私が行っているテストの例です:http://jsfiddle.net/3Wn26/5/