2011-09-07 92 views
0

给定字符串“a | bc \ de,fg〜h,ijk,lm | no \ p”在'|'之前添加'\'的最佳方式是什么? '' '〜' 和 '\'在某些字符前添加反斜杠

所以端线将是 “\ | BC \日\,FG \ - H \,IJK \ LM \ |无\ P”

什么是做到这一点的最佳方式?

我需要这个在c#中。

然后,我还需要一种方法来在JavaScript中获取此字符串并删除所有额外的反斜杠。

预先感谢您。

编辑

任何一个可以帮助我的javacsript功能,这将使我回原始的字符串,脱掉多余的\

+1

在你的'〜h'发生了什么? –

回答

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,因此你可能需要用另一个反斜杠(如\\)来避开反斜线。

+0

谢谢,那太棒了。你是否也可以为我提供一个JavaScript函数来获取该字符串并删除所有额外的反斜杠? – Ovi

+0

我已经添加了一些JavaScript的东西,希望能指出你正确的方向。正如我在回答中所说的那样,自从我完成JavaScript以来已经有一段时间了。 – Tim

+0

的C#是好的,但JavaScript没有伎俩,但任何我需要做别的事情... – Ovi

1

没有必要逃避一切,每一个字符分别,把@字符串之前,例如:

string String = @"a|bc\de,fg~h,ijk,lm|no\p"; 
+0

OP并非试图逃避每个角色 - 你不需要逃跑|和,。他正试图在管道(|)和逗号(,)前加一个反斜杠'\'。 – Tim