RegEx-JavaScript-使用任何协议、子域和文件夹验证已知域
我需要用JavaScript验证一个已知的域,比如domain.com,但我需要用任何子域或子域验证它,用任何协议验证它,用任何文件夹验证它,子文件夹验证它,所以我有一个正则表达式:RegEx-JavaScript-使用任何协议、子域和文件夹验证已知域,javascript,regex,Javascript,Regex,我需要用JavaScript验证一个已知的域,比如domain.com,但我需要用任何子域或子域验证它,用任何协议验证它,用任何文件夹验证它,子文件夹验证它,所以我有一个正则表达式: RegEx: /http:\/\/([\.|a-z]+).domain([\.|a-z]+)\// 问题是它没有得到https/ftp/ftps。。。它得到domain.com/domain.org。。。 我需要验证,比如: To validate: *://*.domain.com/* Example: htt
RegEx: /http:\/\/([\.|a-z]+).domain([\.|a-z]+)\//
问题是它没有得到https/ftp/ftps。。。它得到domain.com/domain.org。。。
我需要验证,比如:
To validate: *://*.domain.com/*
Example: http://example.domain.com/subfolder2/folder24/
Example: https://subdomain.domain.com/folder/
Example: ftp://www.example.domain.com/folder2/folder/
Example: http://www.domain.com/folder/sub-folder/
我的意思是,任何协议、任何子域和任何文件夹,当然,也包括所有这些:
Example: https://example.domain.com/folder/folder/
有什么想法吗?试试这个正则表达式:
/^(https?|ftp):\/\/[.a-z]+\.domain\.com[.a-z0-9/-]+/
这将与您列出的域相匹配:
http://example.domain.com/subfolder2/folder24/
https://subdomain.domain.com/folder/
ftp://www.example.domain.com/folder2/folder/
http://www.domain.com/folder/sub-folder/
工作原理:
# / - Regex start,
# ^ - Match the start of the string,
# (https?|ftp) - followed by `https`, `http` or `ftp`,
# :\/\/ - followed by `://`,
# [.a-z]+ - followed by any amount of letters or periods,
# \. - followed by a period,
# domain\.com - followed by the domain name,
# [.a-z0-9/-]+ - followed by the rest of a possible url.
# / - regex end.
向谷歌索要“regex验证域名”,你会发现很多。你明白你使用的表达式吗?@Mörre我明白了,我为任何域都提供正则表达式,但我需要一个特定的域…@FelixKling我明白,它得到了类似http://*.domain.*/*的东西,但我不知道如何才能得到我需要的东西://.domain.com/*对于初学者,用
domain\.com
替换domain([\.\a-z]+)
http
当然与https
或ftp
等不匹配。但是你可以使用来允许更多的协议。它也会验证domain.org,我需要ony domain.com有或没有子域/文件夹…@David:只需将domain[.a-z0-9/-]+
替换为domain\.com
@Cerbrus:你应该使用^
来锚定正则表达式。如果我们不关心路径,^(https?\124; ftp):\/\/\/[.a-z]+\.domain\.com(?:\/|$)/
。如果我们关心路径,/^(https?;ftp):\/\/[.a-z]+\.domain\.com(?:\/[.a-z0-9/-]*.\124;$)/
。我认为[.a-z0-9/-]
无法涵盖很多情况。[.a-z]
和[.a-z0-9/-]
。