GWT对java.util.regex.Pattern.quote(字符串arg)的替换是什么
在我的应用程序中,我需要如下代码:GWT对java.util.regex.Pattern.quote(字符串arg)的替换是什么,java,regex,gwt,Java,Regex,Gwt,在我的应用程序中,我需要如下代码: string1.replaceAll(string2,myConstatntString) 问题是string1和string2可以包含像'(')这样的特殊符号 我希望使用java.util.regex.Pattern.quote(String arg)引用string2: string1.replaceAll(Pattern.quote(string2),myConstatntString); 但是java.util.regex.Pattern在GWT客户端
string1.replaceAll(string2,myConstatntString)
问题是string1
和string2
可以包含像'('
)这样的特殊符号
我希望使用java.util.regex.Pattern.quote(String arg)
引用string2
:
string1.replaceAll(Pattern.quote(string2),myConstatntString);
但是
java.util.regex.Pattern
在GWT客户端不可用。GWT是否有Pattern.quote
的替代品?我相信没有,因为JavaScript没有自己的方法。您可以做的是使用String.replace()
而不是String.replaceAll()
,假设您根本不需要regexp。如果需要,则必须编写自己的方法
这是如何在JavaScript中完成的:
在Java中是这样做的:
public static String quote(String s) {
int slashEIndex = s.indexOf("\\E");
if (slashEIndex == -1)
return "\\Q" + s + "\\E";
StringBuilder sb = new StringBuilder(s.length() * 2);
sb.append("\\Q");
slashEIndex = 0;
int current = 0;
while ((slashEIndex = s.indexOf("\\E", current)) != -1) {
sb.append(s.substring(current, slashEIndex));
current = slashEIndex + 2;
sb.append("\\E\\\\E\\Q");
}
sb.append(s.substring(current, s.length()));
sb.append("\\E");
return sb.toString();
}
发件人:
(Java 1.5+中的实际实现+1我认为也没有。您可以在GWT中编写一个本机方法来调用JS方法。