我想在java和javascript中的String中为所有这些字符添加双斜杠\\
。
!"#$%&'()*+,./:;<=>?@[\]^`{|}~
例如Test!test
将是Test\\!test
和
Test\test
将为Test\\\test
。
我是否必须在单独的语句中替换它们,或者有一种方法可以在一个语句中编写它。谢谢。
答案 0 :(得分:0)
您可以使用前瞻符合指定字符前的位置并替换该位置:
(?=[!"#$%&'()*+,.\/:;<=>?@[\]\\^`{|}~])
并替换为\\
答案 1 :(得分:0)
爪哇:
String oldString = "!\"#$%&'()*+,./:;<=>?@[\\]^`{|}~";
String newString = "";
for (int i = 0; i < oldString.length(); i++)
{
newString += "//" + oldString.charAt(i);
}
JavaScript的:
var oldString = "!\"#$%&'()*+,./:;<=>?@[\\]^`{|}~";
var newString = "";
for (var i = 0; i < oldString.length; i++)
{
newString += "//" + oldString.charAt(i);
}
答案 2 :(得分:0)
@ DUUUDE123我们从Web服务返回的一些数据只有一个我们可以用来识别对象的唯一值...它可能包含特殊字符,我们在页面的html标签上使用了这个字符串,但是当它有特殊的时候字符,jquery选择器不起作用,除非我们转义这些特殊字符添加&#34; //&#34;在他们面前。但这实际上是一个非常愚蠢的想法...现在我使用java String默认的hashCode方法来散列这个String,并且我得到了一个使用相同简单算法的js方法。尽管hashCode不能保证是唯一的,但在这种情况下它应该足够好了。谢谢。
答案 3 :(得分:0)
是的,有一种方法可以使用正则表达式在两种语言的一个语句中编写它。这有点令人困惑,因为你必须逃避一些特殊字符。
在Java中:
String test = "A!B\"C#D$E%F&G'H(I)J*K+L,M.N/O:P;Q<R=S>U?U@V[W\\\\X]Y^Z`A{B|C}D~";
String escaped = test.replaceAll("([!\"#$%&'()*+,./:;<=>?@\\[\\]^`{|}~])", "\\\\\\\\$1");
System.out.println(escaped);
//Prints: A\\!B\\"C\\#D\\$E\\%F\\&G\\'H\\(I\\)J\\*K\\+L\\,M\\.N\\/O\\:P\\;Q\\<R\\=S\\>U\\?U\\@V\\[W\\X\\]Y\\^Z\\`A\\{B\\|C\\}D\\~
在Javascript中:
var test = "A!B\"C#D$E%F&G'H(I)J*K+L,M.N/O:P;Q<R=S>U?U@V[W\\\\X]Y^Z`A{B|C}D~"
var escaped = test.replace(/([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g,'\\\\$1')
alert (escaped)
//Shows: A\\!B\\"C\\#D\\$E\\%F\\&G\\'H\\(I\\)J\\*K\\+L\\,M\\.N\\/O\\:P\\;Q\\<R\\=S\\>U\\?U\\@V\\[W\\X\\]Y\\^Z\\`A\\{B\\|C\\}D\\~