2009-10-18 73 views
1

如果您有相當數量的客戶端(javascript)和服務器端代碼(C#,vb.net)使用的正則表達式並希望將它們存儲在一個位置以避免重複,你在哪裏存儲它們?ASP.NET,JQuery - 共享正則表達式

我可以使用寄存器並將正則表達式寫成字符串,但只是想知道是否有更優雅的東西。

回答

0

我看了一下上面的兩個解決方案,結果卻做了一些更平淡的事情。 JSON解決方案引起了我的興趣,但我對JSON.NET並不熟悉,有一天我不得不嘗試它,並且我不想將表達式存儲在一個asp.net頁面中,但是正則表達式比較圖表派上用場。

我去了一個簡單的xml文件,我正在使用其他的東西,所以它已經在那裏。

對於服務器端,我使用內置的.NET函數從xml文件中檢索正則表達式,並在客戶端使用jQuery的ajax請求來獲取Javascript中的正則表達式。

$.ajax({ 
    type: "GET", 
    url: "zzz.xml", 
    dataType: "xml", 
    success: parseXml 
}); 
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,這可能會有所幫助。

1

您可以將它們作爲JSON格式的文件存儲在字典中,並使用它從.NET與 Json.NET