gpt4 book ai didi

c# - 验证 FQDN 的正则表达式

转载 作者:太空宇宙 更新时间:2023-11-03 16:09:36 26 4
gpt4 key购买 nike

我正在尝试使用以下正则表达式来验证 Javascript 中的 FQDN。这在 C# 中工作正常。但是页面在 javascript 中使用时会抛出 403 错误。我做错了什么?

 if (!fqdn.match(/(?=^.{1,254}$)(^(?:(?!\d|-)[a-zA-Z0-9\-]{1,63}(?<!-)\.?)+(?:[a-zA-Z]{2,})$)/)) 
{
alert("Not a valid FQDN");
return false;
}

最佳答案

您的正则表达式使用 negative lookbehind assertion (?<!-) ,而这些不受 JavaScript 支持。

您可以重写您的正则表达式以完全相同的方式匹配而无需后视:

/(?=^.{1,254}$)(^(?:(?!\d|-)[a-z0-9-]{0,62}[a-z0-9]\.?)+(?:[a-z]{2,})$)/i

不过,我不太确定正则表达式背后的逻辑对于验证 FQDN 是否真的正确,但那是另一个问题。例如,可选的点使正则表达式容易受到 catastrophic backtracking 的影响。 .这是crash your browser的好方法.

关于c# - 验证 FQDN 的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18011182/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com