RegEx-JavaScript-使用任何协议、子域和文件夹验证已知域

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

我需要用JavaScript验证一个已知的域,比如domain.com,但我需要用任何子域或子域验证它,用任何协议验证它,用任何文件夹验证它,子文件夹验证它,所以我有一个正则表达式:

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/-]