gpt4 book ai didi

javascript - RFC 电子邮件正则表达式模式在 Visual Studio 中显示为错误?

转载 作者:行者123 更新时间:2023-11-30 13:08:25 25 4
gpt4 key购买 nike

我正在使用 exact email regex pattern来自 RFC:

 [a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?

但是

当我将它粘贴到 vs 中时:

var emailPattern = /[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/i;

显示错误: http://i.stack.imgur.com/UkJJE.jpg

enter image description here

未确定的字符串常量

我怎样才能消除这个错误?

最佳答案

如果您决定使用/作为定界符,我认为您需要在正则表达式中转义 /,因此在正则表达式中将每个 / 替换为 \/

问题是,因为第一个和最后一个 / 在这里指示您的正则表达式真正开始和结束的地方,您需要在正则表达式中转义 /让解析器了解在哪里停止。

这应该有效:

var emailPattern = /[a-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/i;

正如您在评论中指出的那样,使用构造 new Regexp("...") 可以让您无需转义即可构建正则表达式。

两种构造是等价的。更多信息 here

关于javascript - RFC 电子邮件正则表达式模式在 Visual Studio 中显示为错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14781848/

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