2009-11-13 73 views
2

由於受到URLRewrite模塊的限制,我用連字符替換查詢字符串值中的所有空格。 服務器端我想將連字符替換回空白,這很好。通過正則表達式替換查詢字符串中的連字符

但是,如果在查詢字符串中存在連字符(在對值進行編碼之前),那麼當我解碼查詢字符串時,它將刪除所有連字符,包括意在存在的連字符。

所以我的問題是,我該如何實現與正則表達式/正則表達式在C#以下....

例1
................ .................
查詢字符串: 「A-搜索項」
解碼值: 「搜索項」

實施例2
.... .............................
Querystring:「a-hyphenated --- search」
Deco DED值:「一個連字符 - 搜索」

而且,我很開放的建議是如何處理類似...

查詢字符串:「上了 - 討論」 解碼值:「彌補-discussion」

非常感謝

+0

你有網址在你的連字符排擠掉前編碼實際連字符的選項?例如,字符串''連字符搜索''可以變成''連字符'%2D搜索「,這應該更容易處理。 – Welbog 2009-11-13 16:55:33

回答

0

你可以做一個簡單的字符串替換嗎?

這應該適用於您的基本方案,但它不是最好的解決辦法:

string newstring = yourstring.Replace("-", " ").Replace(" ", " - ").Replace(" ", " -"); 
2

嘗試Server.UrlEncode(‘搜索詞’),無需解碼,asp.net將閱讀

+0

感謝您的回覆。 但是規範要求我們用Javascript編碼這些值,並且由於上述限制,我們不能使用'+'來表示空格 – justcompile 2009-11-13 16:54:40

+1

如何使用%20作爲空格? – 2009-11-13 16:55:26