2014-11-06 2 views
2

DevMode에서 작동하지만 한 번 컴파일되고 배포되지 않은 RegEx를 사용하고 있습니다. 다음GWT Regex가 DevMode에서 작동 중이며 생산 중이 아닙니다.

@Override 
public String getDisplayString() { 
    String toReturn = myUser.getName() + " (" + myUser.getUserid() + ") " + (myUser.getCompanyname() == null ? "N/A" : myUser.getCompanyname()); 
    return toReturn.replaceAll("(?i)" + "(" + myInput + ")", "<b>$1</b>"); 
    return toReturn; 
} 

공식 문서 (http://www.gwtproject.org/javadoc/latest/com/google/gwt/regexp/shared/RegExp.html) 상태 : 작은 몇

있습니다

이 클래스 확장 com.google.gwt.user.client.ui.SuggestOracle.Suggestion의 일부입니다 두 구현 간의 비 호환성. 정규식 구문 (예 : [az & & [^ bc]] (? < = foo), \ A, \ Q)의 Java 관련 구문은 GWT 구현이 아닌 순수 Java 구현에서만 작동하며 어느 쪽이든에 의해 거부되었습니다. 또한 Javascript 관련 구문 인 $`및 $ '는 GWT 구현에서만 작동하며 순수 Java 구현에서는 작동하지 않으므로이를 거부합니다.

그래도 RegEx를 적용하여 배포 후에 작동하는 방법을 모르겠습니다.

이 사이트 (http://planet.jboss.org/post/smartgwt_tip_regex_evaluation)이 말한다 : 적어도 복잡한

모든 아이디어에 어떻게 내 probem에이 솔루션을 적용하는 가장 복잡한에서 OR 옵션을 주문

솔루션입니까?

건배, 팀

답변

2

자바 스크립트는 대소 문자를 구분하지 일치로 전환 (?i)을 지원하지 않습니다.

가장 좋은 방법은 사용하는 것입니다 com.google.gwt.regexp.shared.RegExp :

public String getDisplayString() { 
    String toReturn = myUser.getName() + " (" + myUser.getUserid() + ") " + (myUser.getCompanyname() == null ? "N/A" : myUser.getCompanyname()); 
    return RegExp.compile(myInput, "ig").replace(toReturn, "<b>$&</b>"); 
} 
관련 문제