GWT:如何在客户端使用正则表达式(模式和匹配器)

anj*_*anb 6 javascript java regex gwt

我们使用GWT 2.03和SmartGWT 2.2.我正在尝试在客户端代码中匹配下面的正则表达式.

Pattern pattern = Pattern.compile("\\\"(/\d+){4}\\\"");
String testString1 = "[    \"/2/4/5/6/8\",    \"/2/4/5/6\"]";
String testString2 = "[  ]";

Matcher matcher = pattern.matcher(testString1);
boolean result = false;
while (matcher.find()) {
    System.out.println(matcher.group());
}
Run Code Online (Sandbox Code Playgroud)

似乎模式和匹配器类没有被GWTC编译器编译为Javascript,因此该应用程序没有加载.什么是等效的GWT客户端代码,以便我可以在String中找到正则表达式匹配?

您是如何在客户端GWT中匹配字符串中的正则表达式的?

谢谢,

小智 13

只需使用String类就可以了!像这样:

String text = "google.com";
    if (text.matches("(\\w+\\.){1,2}[a-zA-Z]{2,4}"))
        System.out.println("match");
    else
        System.out.println("no match");
Run Code Online (Sandbox Code Playgroud)

它可以正常工作,无需导入或升级或其他任何东西.只需根据自己的喜好更改文本和正则表达式.

问候,格伦


Adr*_*ith 12

考虑升级到GWT 2.1并使用RegExp.


Pet*_*ego 5

使用GWT JSNI调用本机Javascript正则表达式:

public native String jsRegExp(String str, String regex)
/*-{
    return str.replace(/regex/);  // an example replace using regexp 
    }
}-*/;
Run Code Online (Sandbox Code Playgroud)