【问题标题】:Email regex string @ symbol not accepted电子邮件正则表达式字符串@符号不被接受
【发布时间】:2021-03-31 07:04:14
【问题描述】:

我尝试通过电子邮件发送验证功能,但不允许使用正则表达式字符串。我的代码如下:

function validateEmail(email) {
  var re = /^\S+@\S+\.\S+$/;
  return re.test(email);
}

@符号给我一个警告。此代码在脚本标签中。

【问题讨论】:

  • 分享警告文字
  • 我添加了警告部分@Mhmdrz_A
  • 这是在 Razor 页面中。尝试使用双 @@ 转义它

标签: javascript html regex validation


【解决方案1】:

对于正则表达式,某些字符会充当您不希望它们发生的事情。

例如,您正在创建一个捕获组。为此,您需要在文本周围加上括号。但是,如果您不想想要打开捕获组怎么办?

这就是反斜杠的来源。只需在( 之前使用反斜杠,该组就会消失。

现在,您也可以对其他符号执行此操作。像\/ 这样的东西在搜索它们时需要被转义,所以你可以在这里应用这个逻辑。您需要使用\@

您的新代码将是:

function validateEmail(email) {
  var re = /^\S+\@\S+\.\S+$/;
  return re.test(email);
}

console.log(validateEmail("email@example.com"));
console.log(validateEmail("fake email"));

虽然此代码确实有效,但我是否建议使用 PHP、NodeJS 或其他服务器端语言来验证电子邮件?在客户端进行验证将使您的网站很容易收到虚假电子邮件。这是因为您可以简单地进入 Inspect Element 并非常轻松地删除该行代码。如果我从源代码中复制一些代码,然后运行它,然后进行一些修改以确保代码有效,你将无法阻止我。

无论如何,我已经测试了我的答案,我相信它确实有效。

【讨论】:

    猜你喜欢
    • 2011-07-01
    • 2017-07-13
    • 1970-01-01
    • 2011-08-20
    • 2021-12-23
    • 1970-01-01
    • 1970-01-01
    • 2013-04-09
    • 1970-01-01
    相关资源
    最近更新 更多