我需要验证给定的网址是否与我的域名掩码匹配。
示例:我想只允许满足此“伪掩码”的域:
https://*.domain.com
http://*.domain.com
所以下一个领域是好的:
http://my.domain.com/something/blah.html
https://www.domain.com/
http://domain.com/go/somewhere.html
https://very.weird.domain.com/index.jsp
但下一个域名不是好的:
https://domain.com.google.com/other.html
http://my.domainfake.com/haha.jsp
https://my.fakedomain.com/
答案 0 :(得分:1)
^https?://[^/@]*\.domain\.com(/.*)?$
(不是 - /
阻止.domain.com
出现在路径中,不是 - @
停止用户名:密码@滥用。)
答案 1 :(得分:1)
试试这个:
^https?://(?:[^./@]+\.)*domain\.com(?![^/])
[^.]+\.
表示一个或多个非点字符,后跟一个点;一种快速而又脏的方法来匹配域名组件及其尾随点。我不会用它来在更大的文本中找到域名,但它足以让你正在进行验证。将其放在一个组中并添加*
量词,以获得与零个或多个组件匹配的正则表达式。
你并不关心域名之后的内容,但你必须确保你已经到了最后;例如,您不希望匹配http://domain.company.com
。正则表达式的最后一部分(?![^/])
是一个负向前瞻,这意味着如果此后有另一个字符,并且该字符不是/
,则失败。
答案 2 :(得分:-1)
你可以使用
"http://a.domain.com".indexOf("domain.com")
如果请求的字符串不在文本中,则返回-1。
因为你不能'。'在'domain.com'之后
你可以使用
"http://a.domain.com".indexOf("domain.com.")
并检查它是否为-1