【发布时间】:2009-10-18 18:20:27
【问题描述】:
如果您有相当数量的正则表达式供客户端 (javascript) 和服务器端代码 (C#、vb.net) 使用,并且希望将它们存储在一个地方以避免重复,那么您将它们存储在哪里?
我可以使用 registerscript 并将正则表达式写成字符串,但只是想知道是否有更优雅的东西。
【问题讨论】:
标签: c# asp.net javascript jquery regex
如果您有相当数量的正则表达式供客户端 (javascript) 和服务器端代码 (C#、vb.net) 使用,并且希望将它们存储在一个地方以避免重复,那么您将它们存储在哪里?
我可以使用 registerscript 并将正则表达式写成字符串,但只是想知道是否有更优雅的东西。
【问题讨论】:
标签: c# asp.net javascript jquery regex
您可以将它们作为受保护的变量存储在您的 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,这可能会有所帮助。
【讨论】:
您可以将它们作为 JSON 格式的文件存储在字典中,并通过 Json.NET 从 .NET 中使用它。
【讨论】:
我查看了上述两个解决方案,但最终做了一些更平淡的事情。 JSON 解决方案让我很感兴趣,但我对 JSON.NET 不熟悉,有一天必须尝试一下,我不想将表达式存储在 asp.net 页面中,但正则表达式比较图表派上用场了.
我使用了一个简单的 xml 文件,该文件用于其他事情,所以它已经存在了。
对于服务器端,我使用内置的 .NET 函数从 xml 文件中检索正则表达式,在客户端,使用 jQuery 的 ajax 请求来获取 Javascript 中的正则表达式。
$.ajax({
type: "GET",
url: "zzz.xml",
dataType: "xml",
success: parseXml
});
【讨论】: