用于验证FQDN的正则表达式
本文关键字:正则表达式 FQDN 验证 用于 | 更新日期: 2023-09-27 18:25:51
我正在尝试使用以下正则表达式来验证Javascript中的FQDN。这在C#中运行良好。但是Page在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;
}
您的regex使用了一个负的后备断言(?<!-)
,而JavaScript不支持这些断言。
您可以重写正则表达式以完全相同的方式匹配,而无需查找:
/(?=^.{1,254}$)(^(?:(?!'d|-)[a-z0-9-]{0,62}[a-z0-9]'.?)+(?:[a-z]{2,})$)/i
不过,我不太确定regex背后的逻辑是否真的适用于验证FQDN,但这是另一个问题。例如,可选的句点使正则表达式容易受到灾难性回溯的影响。这是使浏览器崩溃的好方法。