我想匹配一个简单的域名:example.com
以及它的所有可能组合。
如何做到包含:
https://example.com http://www.example.com 等等。
我想匹配一个简单的域名:example.com
以及它的所有可能组合。
如何做到包含:
https://example.com http://www.example.com 等等。
^https?://([\w\d]+\.)?example\.com$
使用代码:
var result = /^https?:\/\/([a-zA-Z\d-]+\.){0,}example\.com$/.test('https://example.com');
// result is either true of false
我改进了它,使其匹配像“http://a.b.example.com”那样
\w
都在域名中有效(特别是_
),而连字符是允许的。 - mu is too short你可以使用正则表达式匹配URL中的域名部分:
/^(?:https?:\/\/)?(?:[^.]+\.)?example\.com(\/.*)?$
它将匹配以下任意字符串:
https://example.com
http://www.example.com
http://example.com
https://example.com
www.example.com
example.com
正则表达式细节:
^
: 开始位置(?:https?:\/\/)?
: 匹配 http://
或者 https://
(?:[^.]+\.)?
: 可选地 匹配紧挨着下一个点和点之前的文本example\.com
: 匹配 example.com
(\/.*)?
: 可选地 匹配 /
后面零个或多个任意字符$
: 结尾位置location.href
,而它是 http://fiddle.jshell.net/_display/
。如我之前所写,正则表达式是用于匹配域名而不是完整URL的。 - anubhava/http(?:s)?:\/\/(?:[\w-]+\.)*([\w-]{1,63})(?:\.(?:\w{3}|\w{2}))(?:$|\/)/i
http://mylabel.co.uk
这段文本中的“co”将被识别为“mylabel”,但
http://mylabel.co
正则表达式可以正确匹配为“mylabel”。即使有这种限制,该正则表达式对我来说已经足够好了。
请注意,标签的63个字符限制是RFC规范。希望这能帮助将来寻找同样答案的任何人。
^(http:|https:|)[/][/]([^/]+[.])*example.com$
https://example.com
https://www.example.com
http://www.example.com
http://example.com
https://example.com
www.example.com
example.com
结果将是真或假
const result = /^(http(s)?(:\/\/))?(www\.)?example\.com(\/.*)?$/.test(value);
r'[a-z0-9]{0,5}[\:\/]+[w]{0,3}[\.]+[a-z0-9\-]+[\.]+[a-z0-9]{0,3}'
:://:://...-...
,但这不是一个有效的域名。但它无法匹配有效的域名 stackoverflow.com
或 example.enterprise
。 - Totodomain_exp = r'[a-z0-9]{0,5}[\:\/]?[w]{0,3}[\.]?[a-z0-9\-]+[\.]+[a-z0-9]{0,3}'
但这会使它变得太通用,并包含很多错误的结果。你将不得不根据你获得的数据类型调整你的解决方案,因为我相信你不能通过re获得100%的准确性。在我的情况下,上面的方法效果最好。 - solve it
/^https?:\/\/.*?\.?facebook\.com\//
пЉМдљЖжИСиЃ§дЄЇеЃГеПѓиГљдЄНйАВзФ®дЇОжЙАжЬЙжГЕеЖµпЉЯ - Andyhttp://a_b.facebook.com/
),但这可能不是一个问题。 - mu is too short