【问题标题】:how to use regex in MVC 3 with razor如何在带有剃刀的 MVC 3 中使用正则表达式
【发布时间】:2011-06-09 01:42:24
【问题描述】:

当我将 MVC 3 与剃须刀一起使用时,它工作正常,但是当我使用 @section head{ 编写正则表达式时 } 他们不工作

 function isValidEmailAddress(emailAddress) {
            var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
            return pattern.test(emailAddress);
        }

它有@所以这给了我错误

解析器错误描述:在解析一个 服务此请求所需的资源。请查看以下内容 特定的解析错误详细信息并修改您的源文件 适当地。解析器错误消息:“\”在开头无效 一个代码块。只有标识符、关键字、cmets、"(" 和 "{" 有效。

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-3 razor


    【解决方案1】:

    对不起,伙计们,您没有阅读错误,它抱怨的是反斜杠,而不是 @ 和或 @{ } 没有帮助。

    【讨论】:

      【解决方案2】:

      更简洁的选择是通过在 @ 前面放置另一个 @ (@@) 来转义 @

      function isValidEmailAddress(emailAddress) {
          var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
          return pattern.test(emailAddress);
      }
      

      【讨论】:

      • '更少的击键'!= 更整洁。实际上,jgauffins 解决方案更具可读性和安全性(想想复制/粘贴)
      【解决方案3】:

      在函数周围添加<text></text>,它告诉Razor不要解析内容:

      <text>
      function isValidEmailAddress(emailAddress) {
                  var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
                  return pattern.test(emailAddress);
              }
      </text>
      

      【讨论】:

      • 是在客户端呈现为 html 时从页面中删除的文本标记
      • 是的。它仅由 Razor 使用,并从返回给 Web 浏览器的 HTML 中删除。
      猜你喜欢
      • 2013-10-26
      • 2012-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-07
      相关资源
      最近更新 更多