Javascript正则表达式匹配完全限定域名,无协议,可选子域

regexJava

1个回答

写回答

Fiozxx

2025-07-01 21:10

+ 关注

Java
Java

正则表达式匹配完全限定域名,无协议,可选子域

正则表达式是一种强大的文本匹配工具,可以用来验证和提取字符串中的特定模式。本文将介绍如何使用JavaScript正则表达式来匹配完全限定域名(Fully Qualified DomAIn Name, FQDN),即包含顶级域名、二级域名和可选的子域名的域名。

什么是完全限定域名

完全限定域名是指一个域名在全球范围内的唯一标识。它由多个部分组成,包括顶级域名(Top-Level DomAIn, TLD)、二级域名(Second-Level DomAIn, SLD)和可选的子域名(SubdomAIn)。例如,www.example.com就是一个完全限定域名,其中www是子域名,example是二级域名,com是顶级域名。

匹配完全限定域名的正则表达式

下面是一个用于匹配完全限定域名的正则表达式:

Javascript

const fqdnRegEx = /^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}$/i;

这个正则表达式使用了一些特殊的字符和语法:

- ^ 表示匹配字符串的开始。

- [a-z0-9] 表示匹配任意小写字母或数字。

- + 表示匹配前面的元素一次或多次。

- (-[a-z0-9]+)* 表示匹配一个连字符后跟着一次或多次小写字母或数字的模式,并且这个模式可以重复零次或多次。

- \. 表示匹配一个点号。

- {2,} 表示匹配前面的元素至少两次。

- $ 表示匹配字符串的结束。

- i 表示不区分大小写。

这个正则表达式可以匹配类似"example.com"、"www.example.com"和"subdomAIn.example.com"等完全限定域名。

案例代码

下面是一个使用正则表达式匹配完全限定域名的示例代码:

Javascript

const domAIns = [

"example.com",

"www.example.com",

"subdomAIn.example.com",

"invalid-domAIn",

"12345",

];

const fqdnRegEx = /^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}$/i;

domAIns.forEach((domAIn) => {

const isValidDomAIn = fqdnRegEx.test(domAIn);

console.log(<code>${domAIn}: ${isValidDomAIn}</code>);

});

运行上述代码将输出以下结果:

example.com: true

www.example.com: true

subdomAIn.example.com: true

invalid-domAIn: false

12345: false

可以看到,只有符合完全限定域名的字符串才会被匹配为true,其他字符串都会被匹配为false。

本文介绍了如何使用JavaScript正则表达式来匹配完全限定域名。我们使用了一些特殊的字符和语法来构建这个正则表达式,并提供了一个示例代码来演示如何验证域名是否符合完全限定域名的模式。通过正则表达式的匹配,我们可以轻松地验证域名的有效性,从而提高系统的安全性和稳定性。

举报有用(4)分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号