in study-builder/fdahpStudyDesigner/src/main/java/com/fdahpstudydesigner/util/FdahpStudyDesignerUtil.java [696:808]
public static String getRegExpression(
String validCondition, String validCharacters, String exceptCharacters) {
String regEx = "";
if ((StringUtils.isNotEmpty(validCharacters)) && (StringUtils.isNotEmpty(validCondition))) {
if (validCondition.equalsIgnoreCase(FdahpStudyDesignerConstants.ALLOW)) {
regEx += "[";
if (validCharacters.equalsIgnoreCase(FdahpStudyDesignerConstants.ALLCHARACTERS)) {
regEx += "^.";
} else if (validCharacters.equalsIgnoreCase(FdahpStudyDesignerConstants.ALPHABETS)) {
regEx += "a-zA-Z ";
} else if (validCharacters.equalsIgnoreCase(FdahpStudyDesignerConstants.NUMBERS)) {
regEx += "0-9 ";
} else if (validCharacters.equalsIgnoreCase(
FdahpStudyDesignerConstants.ALPHABETSANDNUMBERS)) {
regEx += "a-zA-Z0-9 ";
} else if (validCharacters.equalsIgnoreCase(
FdahpStudyDesignerConstants.SPECIALCHARACTERS)) {
regEx += "^A-Za-z0-9";
}
if ((exceptCharacters != null) && StringUtils.isNotEmpty(exceptCharacters)) {
String[] exceptChar = exceptCharacters.split("");
StringBuilder except = new StringBuilder();
String escapeSplChar = "";
for (String element : exceptChar) {
for (int i = 0; i < element.length(); i++) {
if (!Character.isDigit(element.charAt(i))
&& !Character.isLetter(element.charAt(i))
&& !Character.isWhitespace(element.charAt(i))) {
if (element.charAt(i) == '|') {
escapeSplChar = escapeSplChar + element.charAt(i);
} else {
escapeSplChar = escapeSplChar + "\\" + element.charAt(i);
}
} else {
escapeSplChar = escapeSplChar + "" + element.charAt(i);
}
}
}
except.append("^(?!.*" + escapeSplChar.trim().replace(" ", "") + ")");
regEx = except + regEx + "]+";
} else {
regEx += "]+";
}
} else {
if (validCharacters.equalsIgnoreCase(FdahpStudyDesignerConstants.ALLCHARACTERS)) {
if (StringUtils.isNotEmpty(exceptCharacters)) {
String[] exceptChar = exceptCharacters.split("");
StringBuilder except = new StringBuilder();
String escapeSplChar = "";
for (String element : exceptChar) {
for (int i = 0; i < element.length(); i++) {
if (!Character.isDigit(element.charAt(i))
&& !Character.isLetter(element.charAt(i))
&& !Character.isWhitespace(element.charAt(i))) {
if (element.charAt(i) == '|') {
escapeSplChar = escapeSplChar + element.charAt(i);
} else {
escapeSplChar = escapeSplChar + "\\" + element.charAt(i);
}
} else {
escapeSplChar = escapeSplChar + "" + element.charAt(i);
}
}
}
except.append("^(?:" + escapeSplChar.trim().replace(" ", "") + ")$");
regEx = except + regEx;
} else {
regEx += "^([A-Za-z]*, )$";
}
} else if (validCharacters.equalsIgnoreCase(FdahpStudyDesignerConstants.ALPHABETS)) {
regEx += "^([^a-zA-Z]";
} else if (validCharacters.equalsIgnoreCase(FdahpStudyDesignerConstants.NUMBERS)) {
regEx += "^([^0-9]";
} else if (validCharacters.equalsIgnoreCase(
FdahpStudyDesignerConstants.ALPHABETSANDNUMBERS)) {
regEx += "^([^a-zA-Z0-9]";
} else if (validCharacters.equalsIgnoreCase(
FdahpStudyDesignerConstants.SPECIALCHARACTERS)) {
regEx += "^([A-Za-z0-9 ]";
}
if (!validCharacters.equalsIgnoreCase(FdahpStudyDesignerConstants.ALLCHARACTERS)) {
if ((exceptCharacters != null) && StringUtils.isNotEmpty(exceptCharacters)) {
String[] exceptChar = exceptCharacters.split("\\|");
StringBuilder except = new StringBuilder();
if (validCharacters.equalsIgnoreCase(FdahpStudyDesignerConstants.SPECIALCHARACTERS)) {
for (String element : exceptChar) {
except.append(element.trim().replace(" ", ""));
}
regEx += "|[" + except + "]*)+$";
} else {
for (String element : exceptChar) {
except.append("|\\b(\\b" + element.trim().replace(" ", "") + "\\b)");
}
regEx += except + "*)+$";
}
} else {
regEx += "*)+$";
}
}
}
}
return regEx;
}