我在tld文件中定义了一个函数。它运行良好。但是如果我想从jsp传递一个参数,那就显示错误了。它有什么问题?
public static boolean matcheTelcom(CharSequence str) {
public static String regTelcom="^(((153|133)\\d{8})|((1704|1707)\\d{7}))$";
return Pattern.compile(Constant.regTelcom).matcher(str).matches();
}
现在,我想将其更改为:
public static boolean matches(String pattern, CharSequence str) {
return Pattern.compile(pattern).matcher(str).matches();
}
在jsp中,我这样传递:
<c:if test="${mapping:matches('^(((153|133)\\d{8})|((1704|1707)\\d{7}))$',data.phone)}">
This is a phone
</c:if>
错误显示:在引用的字符串中只有[],[']和[“]可以使用[]进行转义。
答案 0 :(得分:2)
您应该使用\\\\d
代替\\d
。
研究为什么你要使用四个
\
,因为在java语言中\
转移了意义。你应该使用\\
表示\
,同样也是 同样在正则表达式中。