有许多类似的问题,但是他们没有回答 url 没有 , 等的问题www.
。http://
我要做的是检查字符串是否包含具有任何类型 url 的 url。Twitter 在您提交推文时执行此操作。
可接受的 URL 包括但不限于:
- google.com
- 图片.google.com
- http://google.com
- http://www.google.com
- http://www.google.com/anyquerystring
我从Daring Fireball和这个问题中尝试过的两个正则表达式:
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/