Jil*_*ill 1 java pattern-matching
我正在关注BalusC的DAO教程,其中有这个功能:
private static String hashMD5IfNecessary(String password) {
return !"^[a-f0-9]{32}$".matches(password) ? hashMD5(password) : password;
}
Run Code Online (Sandbox Code Playgroud)
我加上:
<h:inputText value="#{myBean.password}" />
Run Code Online (Sandbox Code Playgroud)
但是"^[a-f0-9]{32}$".matches(password)(password从MySQL表中检索到的地方)总是返回false,即使它传递了MD5哈希密码,例如21232f297a57a5a743894a0e4a801fc3.
我也尝试了以下模式:
[a-f0-9]{32}[a-f0-9]{32}+但他们仍然总是评价false.此外,我非常怀疑BalusC的原始代码是错误的.我究竟做错了什么?
谢谢!
请参阅http://download.oracle.com/javase/6/docs/api/java/lang/String.html#matches(java.lang.String)
matches()方法将正则表达式作为参数,因此,鉴于您在问题中所写的内容,它将始终返回false,因为密码不太可能是匹配"^ [a-f0-9] {的正则表达式32} $".
尝试
password.matches("^[a-f0-9]{32}$")
Run Code Online (Sandbox Code Playgroud)
代替
| 归档时间: |
|
| 查看次数: |
1651 次 |
| 最近记录: |