在java和javascript中,在字符前添加双斜杠

Add double slash before characters in both java and javascript

本文关键字:添加 java javascript 字符      更新时间:2023-09-26

我想在java和javascript的字符串中添加双斜杠''

!"#$%&'()*+,./:;<=>?@[']^`{|}~

例如Test!test将是Test''!testTest'test = Test'''test。我是否需要在一个单独的语句中替换它们或者有一种方法可以在一个语句中写出来。谢谢你。

您可以使用向前看匹配指定字符之前的位置并替换该位置:

(?=[!"#$%&'()*+,.'/:;<=>?@[']''^`{|}~])
并替换为''

Java:

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);
}

@DUUUDE123我们从web service得到的一些数据只有一个唯一的值,我们可以用它来标识对象…它可以包含特殊字符,我们在页面html标签上使用这个字符串,但是当它有特殊字符时,jquery选择器不起作用,除非我们转义这些特殊字符并在它们之前添加"//"。但这实际上是一个非常愚蠢的想法……现在我使用java String默认的hashCode方法来散列这个String,并且我得到了一个具有相同简单算法的js方法。虽然不能保证hashCode是唯一的,但在这种情况下它应该足够好。谢谢你。

是的,有一种方法可以使用正则表达式在两种语言的一个语句中编写它。这有点令人困惑,因为你必须转义一些特殊字符。

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''~