【问题标题】:How the write "@" in a razor java script function? [duplicate]如何在 razor javascript 函数中写入“@”? [复制]
【发布时间】:2013-06-02 05:00:18
【问题描述】:

我正在尝试向视图中的一个表单添加电子邮件验证:

function validateForm(){
var x=document.forms["myForm"]["email"].value;
var atpos=x.indexOf("@");
var dotpos=x.lastIndexOf(".");
if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length)
  {
  alert("Not a valid e-mail address");
  return false;
  }
}

但我可以写信 @,因为它是为 C# 表达式保留的。

【问题讨论】:

  • 这与您的问题并没有真正的关系,但我建议您考虑使用正则表达式来验证电子邮件地址。
  • @Gunder 不,您不使用正则表达式验证电子邮件地址。
  • @CodeCaster 你不同意问题不在于使用正则表达式(作为一种技术),而是人们用来捕获所有无效电子邮件地址的正则表达式,这实际上不可行吗?通常使用正则表达式作为输入验证,甚至对于电子邮件地址都没有错,但是对于电子邮件地址,确实应该注意不要使用过于严格的正则表达式,因为您可能会得到误报并激怒用户.但是,我的观点是 OP 可以将他现有的验证逻辑重写为正则表达式。那会是一件坏事吗?
  • @CodeCaster 我完全同意你的看法。 - 我可能应该在我最初的评论中更清楚我的意思。我现在可以看到,我似乎建议 OP 寻找一个“正确”的电子邮件正则表达式,但这不是我的意图。

标签: javascript asp.net-mvc-4 razor view


【解决方案1】:

在它之前用 at 符号转义它

@@

【讨论】:

    【解决方案2】:

    试试这个,

    function validateForm() {
        var x = document.forms["myForm"]["email"].value;
        var atpos = x.indexOf("@@");//use Escape 
        var dotpos = x.lastIndexOf(".");
        if (atpos < 1 || dotpos < atpos + 2 || dotpos + 2 >= x.length) {
            alert("Not a valid e-mail address");
            return false;
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2012-09-03
      • 2017-12-19
      • 2019-04-04
      • 2013-08-05
      • 2017-02-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多