如果客户端 (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/