为什么注册密码只接受@符号?

why registration password only accepts @ symbol?

private Boolean validatePass() {
        String val = pass.getEditText().getText().toString().trim();
        String passwordVal = "^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}$";

        if (val.isEmpty()) {
            pass.setError("*Required");
            return false;
        } else if (!val.matches(passwordVal)) {
            pass.setError("Invalid Password");
            return false;
        } else {
            pass.setError(null);
            return true;
        }
    }

我用这个代码验证密码,这有什么问题?

根据您的正则表达式代码,它应该满足那里提到的所有符号 #,?,!,@,$,%,%,^,&,*,- 如果您使用这些以外的符号,它将失败像 _,+,~,`