我只允许上述特殊字符。
我尝试过
private final Pattern hasSpecialChar = Pattern.compile("[!@#$%^&*]");
if (!hasSpecialChar.matcher(password).find()) {
return "String allows only !@#$%^&* special characters";
}
但是它也允许其他特殊字符。
任何机构都能帮助我创建合适的正则表达式吗?
答案 0 :(得分:2)
尝试一下:
@Service
public class VirtualControllerServiceImpl implements
VirtualControllerService {
@Override
@Transactional
public JsonHost createVifcHostForWebApi(VirtualController
virtualController) {
JsonHost jsonHost = new JsonHost();
jsonHost.setIP(virtualController.getIpAddress());
jsonHost.setUser(environment.getProperty("VIFC_WEBAPI_USER"));
jsonHost.setPassword(environment.getProperty("VIFC_WEBAPI_PASSWORD"));
return jsonHost;
}
}
答案 1 :(得分:1)
摘录下的内容可能会帮助您
private final Pattern hasSpecialChar = Pattern.compile("[^!@#$%^&*]");
if (hasSpecialChar.matcher(password).find()) {
return "String allows only !@#$%^&* special characters";
}
答案 2 :(得分:1)
您的代码段希望查看特殊字符是否至少出现一次。
对此的一个简单更正是取消检查-即寻找至少一个不在接受字符集中的非特殊字符:
private final Pattern hasSpecialChar = Pattern.compile("[^!@#$%^&*]");
if (hasSpecialChar.matcher(password).find()) {
return "String allows only !@#$%^&* special characters";
}
请注意,此答案假设您只想允许这些特殊字符,而在输出中没有其他字母数字字符。