0

嗨,我想做一些验证。我曾经将正则表达式放在 JS 中,但我对 Java 中的正则表达式很陌生,所以我尝试在 Java 中的类似行上编写代码。这就是我所做的。1)检查字符串中的第一个字符是否是字母数字。2)检查字符串是否至少有1个数字。

所以我写了一个代码,但它总是返回错误。我不确定我是否正确地这样做。

 private static boolean checkEmbeddedPassword(final String field) {
            boolean returnValue=true;


            String testpatternAlpha="/^[A-Za-z0-9].+$/";


            String testNumber="/[0-9]/";
            Pattern pattern=Pattern.compile(testpatternAlpha);
            Pattern pattern2=Pattern.compile(testNumber);
            Matcher matcher = pattern.matcher(field);
            Matcher matcher2 = pattern2.matcher(field);
            boolean firstChar=matcher.matches();
            boolean numberFlag=matcher2.matches();
            System.out.println("-----the value of pwd iss-----"+field);
            System.out.println("---------Regex---------Out--put-----"+firstChar);
            System.out.println("---------Regex---------Out- for numeral-put-----"+numberFlag);
            if(firstChar){
                returnValue=false;
            }
            else if(field.contains(" "))
            {
                System.out.println("-----------cannot have space------");
                returnValue=false;
            }
            else if(numberFlag)
            {
                returnValue=false;
            }
            return returnValue;
        }
4

2 回答 2

3

我们不在/java中正则表达式的开头和结尾使用。

试试这个...

String testpatternAlpha="^[A-Za-z0-9].+$"; //  first character in string is alphanumeric

String testNumber="[0-9]"; //test single number
于 2012-11-23T11:02:38.517 回答
3

Java 中不需要/前缀和后缀:

String testpatternAlpha="^[A-Za-z0-9].+$";


同样在您的情况下,您将希望使用Matcher.find而不是Matcher.matches. 您可以在 API 文档中阅读原因:http: //docs.oracle.com/javase/1.5.0/docs/api/java/util/regex/Matcher.html

于 2012-11-23T11:07:05.680 回答