标签:int within integer 内容 pre lang The 字符 写法
要做什么:匹配一个字符串,如果是小数点数字,就取整数;如果不是数字,就直接显示
先看正确实现:
<c:set var="reg" value="\d+\.?\d+" /> <c:if test="${expPerResult.matches(reg)}"> 数字 <fmt:parseNumber integerOnly="true" value="${expPerResult}" /> </c:if> <c:if test="${!expPerResult.matches(reg)}"> 非数字 ${expPerResult} </c:if>
之前的错误写法:
<c:if test="${expPerResult.matches(‘\d+\.?\d+‘)}">
数字 <fmt:parseNumber integerOnly="true" value="${expPerResult}" />
</c:if>
<c:if test="${!expPerResult.matches(‘\d+\.?\d+‘)}">
非数字
${expPerResult}
</c:if>
后台异常内容:
java.lang.IllegalArgumentException: The expression [${expPerResult.matches(‘\d+\.?\d+‘)}] is not valid. Within a quoted String only [\], [‘] and ["] may be escaped with [\].
总结:在使用el表达式调用String的matches方法时,最好将正则表达式作为变量传入,原因如异常所示:表达式内要避免"\"。
在Jsp中使用EL表达式调用String类的matches方法的问题
标签:int within integer 内容 pre lang The 字符 写法
原文地址:https://www.cnblogs.com/HF-Made/p/11607123.html