JavaScript转义字符串不会在C#正则表达式中得到取消转义.取消逃脱()
本文关键字:取消 转义 逃脱 字符串 转义字符 JavaScript 正则表达式 | 更新日期: 2023-09-27 18:31:54
我正在将一个转义的字符串从JavaScript发送到c#控制器,现在我希望它在c#
中取消转义。
我在c#
中使用了regex.Unescape()
,但它不起作用。那么,我将如何在c#
中摆脱它呢?
使用Uri.Unescape
或UnescapeDataString
,请参阅此页面
如果您需要Unicode
支持,并且无法使用 System.Web
中实现的unescape
功能,则可以改用以下 replace 语句:
string str = "%u0442%u043E%u0432%u0430%20%u0435%20text%20%14%u20AC";
//replace Unicode characters
str = Regex.Replace(str, @"%U([0-9A-F]{4})", match => ((char)int.Parse( match.Groups[1].Value, NumberStyles.HexNumber ) ).ToString(),RegexOptions.IgnoreCase );
//now replace ASCII character
str = Regex.Replace(str, @"%([0-9A-F]{2})", match => ((char)int.Parse( match.Groups[1].Value, NumberStyles.HexNumber ) ).ToString(),RegexOptions.IgnoreCase );
Console.WriteLine(str);