2009-11-13 20 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