c# - ASP.NET、JQuery - 共享正则表达式

标签 c# asp.net javascript jquery regex

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

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

最佳答案

您可以将它们作为 protected 变量存储在您的 asp.net 页面的代码隐藏中,然后使用数据绑定(bind)表达式将它们作为公共(public)变量存储在您的 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这可能会有所帮助。

关于c# - ASP.NET、JQuery - 共享正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1585626/

相关文章:

c# - Tridion 2009 - 使用 Interops - 是否有可能为同一个名称添加多个 setConditions

c# - SmtpClient.Send 失败,出现 System.FormatException : Smtp server returned an invalid response

c# - 将新表添加到 .NET 后端 Windows Azure 移动服务

c# - ObjectContext 实例已被释放,不能再用于需要连接的操作。在引用表中

javascript - 为什么Argon模板中有这么多相同的路线?

javascript - 无法使用 javascript 检索正确的图像大小

c# - 如何将 DataSet a 转换为 DataReader?

c# - WebApi Controller 没有找到 Controller 的操作

javascript - 在 Asp.net C# Web 应用程序中集成 Bing map

php - jQuery $.getJSON : Passing arrays to PHP