replaceString中的所有双引号
我从数据库中检索字段包含string与HTML数据的数据。 我想要replace所有的双引号,以便它可以用于jQuery的 parseJSON
。
使用Java我试图取代报价使用..
details.replaceAll("\"","\\\""); //details.replaceAll("\"",""e;"); details.replaceAll("\"",""");
已经尝试过,但结果string不显示更改。 O'reily文章规定了文章 apachestringutils。 有没有其他的方法?
任何正则expression式或东西?
就是这样
String details = "Hello \"world\"!"; details = details.replace("\"","\\\""); System.out.println(details); // Hello \"world\"!
请注意,string是不可变的 ,因此仅仅执行details.replace("\"","\\\"")
是不够的。 您必须将variablesdetails
重新分配给结果string。
运用
details = details.replaceAll("\"",""e;");
相反,结果
Hello "e;world"e;!
那不是必须的:
.replaceAll("\"","\\\\\"")
replacestring中的5个反斜杠。
我认为在这种情况下正则expression式有点矫枉过正。 如果你只是想删除你的string中的所有引号,我会使用这个代码:
details = details.replace("\"", "");
为了使它在JSON中工作,你需要避免更多的字符。
myString.replace("\\", "\\\\") .replace("\"", "\\\"") .replace("\r", "\\r") .replace("\n", "\\n")
如果你想能够使用json2.js
parsing它,那么你也需要转义
.replace("\u2028", "\\u2028") .replace("\u2029", "\\u2029")
哪些JSON允许内部引用的string,但哪些JavaScript没有。
我知道答案在这里已经被接受了,但我只是想分享一下当我试图逃避双引号和单引号时发现的东西。
这是我所做的:这个工作:)
逃避双引号 :
if(string.contains("\"")) { string = string.replaceAll("\"", "\\\\\""); }
并逃避单引号 :
if(string.contains("\'")) { string = string.replaceAll("\'", "\\\\'"); }
PS:请注意上面使用的反斜杠的数量。
这是删除string中的双引号。
str1 = str.replace(/"/g, ""); alert(str1);
下面的正则expression式将适用于两个:
text = text.replaceAll("('|\")", "\\\\$1");