繁体   English   中英

用于验证FQDN的正则表达式

[英]Regular expression to validate FQDN

我正在尝试使用以下正则表达式来验证Javascript中的FQDN。 在C#中可以正常工作。 但是在JavaScript中使用Page时会引发403错误。 我究竟做错了什么?

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

您的正则表达式使用否定的后向断言 (?<!-) ,而JavaScript不支持它们。

您可以重写正则表达式,以完全相同的方式进行匹配,而无需担心:

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

不过,我不确定正则表达式背后的逻辑是否真的适用于验证FQDN,但这是另一个问题。 例如,可选点使正则表达式易于遭受灾难性的回溯 这是使浏览器崩溃的好方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM