给定字符串“a | bc \ de,fg~h,ijk,lm | no \ p”在'|'之前添加'\'的最佳方法是什么',''〜'和'\'
所以结束字符串是“a \ | bc \ de \,fg \ ~h \,ijk \,lm \ | no \ p”
这样做的最佳方式是什么?
我在c#中需要这个。
然后我还需要一种方法来在JavaScript中获取此字符串并删除所有额外的反斜杠。
提前谢谢。
修改
任何人都可以帮助我使用javacsript函数来回复原来的字符串,取消额外的\
吗?
答案 0 :(得分:2)
正则表达式会有点矫枉过正。使用String.Replace Method (String, String):
string myString = @"a|bc\de,fg~h,ijk,lm|no\p";
myString = myString.Replace("|", "\\|").Replace(",", "\\,").Replace("~", "\\~").Replace("\\", "\\\\");
这会产生"a\|bc\\de\,fg\~h\,ijk\,lm\|no\\p"
可能有多种方法可以为JavaScript获取字符串。这取决于您生成字符串的位置。为了便于说明,假设您在后面的代码中生成字符串并将其置于客户端的某些控件(可能是隐藏字段)中。
在客户端中,您将获得字符串并使用Javascript String.Replace方法,如下所示,假设str1为"a\|bc\\de\,fg\~h\,ijk\,lm\|no\\p"
:
str1 = str1.Replace("\,", ",");
str1 = str1.Replace("\|", ",");
str1 = str1.Replace("\\", "\");
自从我完成JavaScript以来已经有一段时间了,所以您可能需要使用另一个反斜杠来逃避反斜杠(例如\\
)。
答案 1 :(得分:1)
无需单独转义所有字符,将@放在字符串之前,例如:
string String = @"a|bc\de,fg~h,ijk,lm|no\p";
答案 2 :(得分:0)
如果只需要转义Regex system characters
,则可以像这样使用方法Escape
:
String str1= Regex.Escape("your string with \ - +");