当URL可能包含或不包含HTTP和WWW时,URL为URL的正则表达式
我正在使用将检查URL的JavaScript正则表达式。当URL可能包含或不包含HTTP和WWW时,URL为URL的正则表达式
(?i)\b((?:[a-z][\w-]+:(?:/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))
我用这个正则表达式发送消息给Twitter。会发生什么事是确保URL包含WWW和/或HTTP。
但问题是如果URL是像Guaridan.com.uk Twitter认为它是一个URL。
那么我怎样才能修改我的正则表达式,它不会检查HTTP或WWW,这意味着如果它存在,那么它不会产生任何影响。
因此,它会匹配像My.co.com或dummyKin。
如果您只想匹配域名,您必须匹配几乎任何字词加“。”,“_”和“ - ”符号。 一种方法可能至少与根域(.com,.net,.us,.co.uk,.es,.fr等等)匹配,但该列表将是巨大的。你可能想匹配任何有点分隔的词,而不是它肯定会是一个域,但你可以尝试连接它。
此正则表达式:([\d\w]+?:\/\/)?([\w\d\.\-]+)(\.\w+)(:\d{1,5})?(\/\S*)?
将匹配:
- 组1为protocol://(可选)
- 组2的concat组3作为域
- 组3是顶层域
- 组4作为端口(可选)
- 组5作为查询(可选)
用于www和http URL格式的jQuery正则表达式。
接受WWW以及HTTP下面给定URL正则表达式:
var pattern = /(?:https?:\/\/)?(?:www\.)?(?:https?:\/\/)?(?:www\.)(?:https?:\/\/)?(?:www\.)?(\/\S*)?/;
接受WWW,HTTP,abc.com下面给出正则表达式:
var pattern = ([\d\w]+?:\/\/)?([\w\d\.\-]+)(\.\w+)(:\d{1,5})?(\/\S*)?
欢迎来到SO!你能重新格式化你的答案,把正则表达式放到代码中吗?请重新检查错别字。 – Mateng 2012-11-12 05:15:39
它需要你在哪里使用这个正则表达式,只要把自己的代码括号或分号。就像我添加这个正则表达式在我的jqueryvalidation.js作为“url”:{ “regex”:/(?: https?:\ \ /)(?: WWW \)(?: HTTPS:???\/\ /)(?: WWW \)(?: HTTPS:???\/\ /)(?: WWW \) ?(\/\ S *)?/ i, “alertText”:“*无效的网址” } – 2012-11-15 07:42:54
试试这个......
/^http:\/\/|(www\.)?[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?$/
它的工作人民正在想什么。
它带或不带http://, https://,
和www
。
如果您使用jQuery,为什么不使用使用jQuery的URL验证例程? – fge 2012-01-04 10:31:57
@fge我不知道这件事。你能举一些例子吗 – Moons 2012-01-04 10:33:09
请看这里:http://docs.jquery.com/Plugins/Validation/Methods/url – fge 2012-01-04 10:37:02