2011-12-21 59 views
2

場景:在我asp.netmvc應用程序的用戶鍵入關鍵字(如hello),然後單擊search,在C#代碼我建立一個JavaScriptRegExp字符串(/hello/i),這將是傳入的MongoDB查詢,整個查詢看起來像:生成(逃避)在C#中的JavaScript正則表達式

db.Posts.find({ "title" : /hello/i }) 

讓所有的帖子在標題hello

當關鍵字包含特殊字符(如\()時,js regexp構建不正確。

有沒有任何C#庫來解析它?

回答

1

您正在查找Regex.Escape

儘管Javascript和.Net使用不同的正則表達式引擎,但我相信.net助手對於JS正則表達式來說已經足夠了。

+0

是的,.NET風格實際上是JavaScript的超集。任何在JS中有特殊含義的字符在.NET中也是特殊的,並且會被正確地轉義。 – 2011-12-21 05:38:56

+0

測試幾個案例,你是對的。 – 2011-12-21 06:04:19

+0

@DannyChen:在簡單的情況下,這肯定會起作用。這是我不確定的角落案件。 – SLaks 2011-12-21 12:55:56