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方法。