我正在使用以下代码来验证在 edittextbox 中输入的日期。但是在 xml 文件中我给出了它的输入类型日期。
int i = validate(registerdate);
这是验证函数:
private int validate(String registerdate) {
String regEx =
"^(0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])[- /.](19|20)\d\d$";
Matcher matcherObj = Pattern.compile(regEx).matcher(registerdate);
if (matcherObj.matches())
{
return 1;
}
else
{
return 0;
}
}
它在
处给我编译时错误String regEx =
"^(0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])[- /.](19|20)\d\d$";
说无效的转义序列。
任何人都可以找出我错在哪里或任何其他方法来验证日期表达式吗?
最佳答案
Java 会将字符串中的\视为 escape sequence 的开始.确保你使用\代替(这样你在字符串中得到一个实际的\字符)并且你应该没问题。
快速更新:
正如 Etienne 指出的那样,如果您确实想要在 RegEx 本身中使用\,则需要使用\\,因为这会在字符串中产生\,这将产生\在正则表达式中。
更正后的正则表达式:
String regEx ="^(0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])[- /.](19|20)\\d{2}$";
关于android - 在编辑文本框中验证日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7764233/