Phone Number validation using Regular Expression in ADF and Java

Sharing is Caring

Regular Expression (REGEX) is the best method to validate a phone number, email, name etc in Java.
Here I have written this phone number validation code using the regular expression and Java code to use this in an Oracle ADF Application.

Also, read about custom validation in Oracle ADF

Phone Number validation

public void phoneNoValidator(FacesContext facesContext, UIComponent uIComponent, Object object) {

        String msg2 = "";

        if (object != null) {

            String phnNo = object.toString();

            int openB = 0;

            int closeB = 0;

            boolean closeFg = false;

            char[] xx = phnNo.toCharArray();

            for (char c : xx) {

                if (c == '(') {

                    openB = openB + 1;

                } else if (c == ')') {

                    closeB = closeB + 1;

                }

                if (closeB > openB) {
closeFg = true; //closed brackets will not be more than open brackets at any given time.
                }
            }
            //if openB=0 then no. of closing and opening brackets equal || opening bracket must always come before closing brackets
            //closing brackets must not come before first occurrence of openning bracket
            if (openB != closeB || closeFg == true || (phnNo.lastIndexOf("(") > phnNo.lastIndexOf(")")) ||
                (phnNo.indexOf(")") < phnNo.indexOf("("))) {
msg2 = "Brackets not closed properly.";
FacesMessage message2 = new FacesMessage(msg2);
message2.setSeverity(FacesMessage.SEVERITY_ERROR);
                throw new ValidatorException(message2);
            }
            if (phnNo.contains("()")) {
msg2 = "Empty Brackets are not allowed.";
FacesMessage message2 = new FacesMessage(msg2);
message2.setSeverity(FacesMessage.SEVERITY_ERROR);
                throw new ValidatorException(message2);
            }
            if (phnNo.contains("(.") || phnNo.contains("(-") || phnNo.contains("-)")) {
msg2 = "Invalid Phone Number.Check content inside brackets.";
FacesMessage message2 = new FacesMessage(msg2);
message2.setSeverity(FacesMessage.SEVERITY_ERROR);
                throw new ValidatorException(message2);
            }

openB = 0;
closeB = 0;
closeFg = false;
            //check for valid language name.Allowed- brackets,dots,hyphen

String expression = "([0-9\-\+\(\)]+)";
CharSequence inputStr = phnNo;
Pattern pattern = Pattern.compile(expression);
Matcher matcher = pattern.matcher(inputStr);
String error = "Invalid Phone Number";
System.out.println("Index of plus is--->" + phnNo.lastIndexOf("+"));
System.out.println("Bracket index--->" + phnNo.charAt(0));

            if (matcher.matches()) {
                if (phnNo.contains("++") || phnNo.contains("--")) {
                    throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR, error,
                                                                  "Can not contain two hyphen(--) or plus(++)"));
                } else if (phnNo.lastIndexOf("+") > 1) {
                    throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR, error,
                                                                  "Plus sign should be in proper place"));
                } else if (phnNo.lastIndexOf("+") == 1 && phnNo.charAt(0) != '(') {
                    throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR, error,
                                                                  "Plus sign should be in proper place"));
                } else if (phnNo.startsWith(" ") || phnNo.endsWith(" ")) {
                    throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR, error,
                                                                  "Space Not allowed at start and end"));
                }

            } else {
                throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR, error,
                                                              "Only numeric character,+,() and - allowed"));
            }

        }
    }

Cheers:) Happy Learning

Related Posts

Leave a Reply

Your email address will not be published. Required fields are marked *