【问题标题】:ASP.NET, JQuery - Sharing regular expressionsASP.NET, JQuery - 共享正则表达式
【发布时间】:2009-10-18 18:20:27
【问题描述】:

如果您有相当数量的正则表达式供客户端 (javascript) 和服务器端代码 (C#、vb.net) 使用,并且希望将它们存储在一个地方以避免重复,那么您将它们存储在哪里?

我可以使用 registerscript 并将正则表达式写成字符串,但只是想知道是否有更优雅的东西。

【问题讨论】:

    标签: c# asp.net javascript jquery regex


    【解决方案1】:

    您可以将它们作为受保护的变量存储在您的 asp.net 页面的代码隐藏中,然后使用数据绑定表达式将它们作为公共变量存储在您的 javascript 中...

    在您的 ASPX 页面中:

    <script type="text/javascript">
        var regexPhone = new RegExp("<%# regexPhone %>");
        var regexEmail = new RegExp("<%# regexEmail %>");
        var regexBlah = new RegExp("<%# regexBlah %>");
    </script>
    

    在您的代码隐藏中:

    protected string regexPhone = "put regex string here";
    protected string regexEmail = "put regex string here";
    protected string regexBlah = "put regex string here";
    
    protected void Page_Load(object sender, EventArgs e)
    {
        // We need to call DataBind() on the page so that
        // we can use databinding expressions
        DataBind();
    }
    

    虽然我以前从未尝试过这种确切的方法,但我认为它会起作用 :-P 如果有帮助,请告诉我!

    注意:这里可能需要注意的是,.NET 正则表达式风格可能与 JavaScript 正则表达式风格不同。伟大的 Jan Goyvaerts 有一个令人印象深刻的comparison chart,这可能会有所帮助。

    【讨论】:

      【解决方案2】:

      您可以将它们作为 JSON 格式的文件存储在字典中,并通过 Json.NET 从 .NET 中使用它。

      【讨论】:

        【解决方案3】:

        我查看了上述两个解决方案,但最终做了一些更平淡的事情。 JSON 解决方案让我很感兴趣,但我对 JSON.NET 不熟悉,有一天必须尝试一下,我不想将表达式存储在 asp.net 页面中,但正则表达式比较图表派上用场了.

        我使用了一个简单的 xml 文件,该文件用于其他事情,所以它已经存在了。

        对于服务器端,我使用内置的 .NET 函数从 xml 文件中检索正则表达式,在客户端,使用 jQuery 的 ajax 请求来获取 Javascript 中的正则表达式。

        $.ajax({
            type: "GET",
            url: "zzz.xml",
            dataType: "xml",
            success: parseXml
        });
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2023-03-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-07-16
          相关资源
          最近更新 更多