【发布时间】:2016-04-19 21:47:51
【问题描述】:
我正在尝试为用户需要输入的某个数字设置要求(pNumber)。 pNumber 应包含 2 个字母,然后是 6 个字母或数字,最后是一个数字。
我已经实现了一个我在 stackoverflow 上找到的方法,但是当我输入一个像“LL^&%JJk9”这样的数字时,它仍然会给我一个肯定的结果吗? 据我了解 .matches 检查字符串是否仅包含给定的值?
String First = pNumber.substring(0, 2);
String Middle = pNumber.substring(2, 8);
String Last = pNumber.substring(8, 9);
if (First.matches(".*[a-zA-Z].*") && Middle.matches(".*[a-zA-Z0-9].*") && Last.matches(".*[0-9].*")) {
greenOk.setVisibility(View.VISIBLE);
nextBtn.setEnabled(true);
} else {
redCross.setVisibility(View.VISIBLE);
}
【问题讨论】:
-
这应该足够了:这与你的问题相反:stackoverflow.com/a/8248352/503508
-
顺便说一句,您的正则表达式可能不是您认为的那样。它们基本上匹配 1. 第一个字符串中的任何字符。 2. 中间字符串中的任意字符/数字。 3. 第三个字符串中的任意数字。
-
RegExr 非常适合学习和测试正则表达式。
-
您认为
.*是什么意思?和[a-zA-Z]?