当前位置: 首页 > 工具软件 > micro-match > 使用案例 >

关于matches()的使用

卫博
2023-12-01

Java matches() 方法

matches() 方法用于检测字符串是否匹配给定的正则表达式。

返回值

在字符串匹配给定的正则表达式时,返回 true。

例子:

public class Test {
    public static void main(String args[]) {
        String Str = new String("www.runoob.com");

        System.out.print("返回值 :" );
        System.out.println(Str.matches("(.*)runoob(.*)"));
        
        System.out.print("返回值 :" );
        System.out.println(Str.matches("(.*)google(.*)"));

        System.out.print("返回值 :" );
        System.out.println(Str.matches("www(.*)"));
    }
}

结果的返回值:

返回值 :true
返回值 :false
返回值 :true

之后我在做项目的时候发现了一个这个

if ( ! passwordEncoder . matches ( req . getOldPassword (), sysUser . getPassword ())) {
return Result . error ( " 原密码输入错误 " );
}
为什么要用matches呢?
原来得从数据库这弄,因为数据库对这些进行了加密,密码都是 :
$10$uA51hWL5yusFBoEvZOAZbeaYYqUaFV7xjdDB8GA.4iViNiCSK9xKO
这些加密的字符串,那么用的是 Spring Security灵活的PasswordEncoder加密方式,并不是java.matches()方法,就是相当于学了一个新的字符串了。
用BCryptPasswordEncoder 做加密,在判断时要用该对象的matches方法,第一个参数为明文!!!,第二个参数才是密文 !!!
所以req.getOldPassword()是明文,sysUser.getPassword()是数据库里边的。
 类似资料: