Hi,
Following code will help u to get url validation.
Let me know any problem.
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class ValidatorUtil {
*/
public static boolean validateURL(String url) {
url = url.trim();
String newUrl = "";
String urlWithoutHeaderPart = "";
String urlWithoutHFPart = "";
String urlFilePart = "";
String urlDomainPart = "";
int fileIndex = -1;
int domainIndex = -1;
boolean isValidFilePartGlobal = true;
boolean isValidDomainPartGlobal = true;
boolean isValidMiddlePartGlobal = true;
Pattern p = Pattern.compile("\\b(http(s?)\\:\\/\\/)");
Matcher m = p.matcher(url.trim());
boolean matchFound = m.find();
if (matchFound) //if url already starts with http:// or https://
{
newUrl = url.trim();
} else {
newUrl = "http://".concat(url.trim()).trim();
}
Pattern p1 = Pattern.compile("\\b(http\\:\\/\\/)");
Matcher m1 = p1.matcher(newUrl.trim());
Pattern p2 = Pattern.compile("\\b(https\\:\\/\\/)");
Matcher m2 = p2.matcher(newUrl.trim());
boolean matchFound1 = m1.find();
boolean matchFound2 = m2.find();
if (matchFound2) {
urlWithoutHeaderPart = newUrl.trim().substring(8);
}
if (matchFound1 && !matchFound2) {
//if http://
urlWithoutHeaderPart = newUrl.trim().substring(7);
}
//Check File Part
fileIndex = urlWithoutHeaderPart.trim().indexOf("/");
if (fileIndex == 0) {
isValidFilePartGlobal = false;
urlWithoutHFPart = urlWithoutHeaderPart;
}
if (fileIndex > 0) {
urlFilePart = urlWithoutHeaderPart.trim().substring(fileIndex);
Pattern filePartPattern = Pattern.compile("[-\\w\\./]+");
Matcher macthFilePart = filePartPattern.matcher(urlFilePart.trim());
boolean isValidFilePart = macthFilePart.matches();
if (!isValidFilePart) {
//isInvalidurl = true;
isValidFilePartGlobal = false;
}
urlWithoutHFPart = urlWithoutHeaderPart.trim().substring(0,
fileIndex);
} else {
urlWithoutHFPart = urlWithoutHeaderPart;
}
//Check Domain part
domainIndex = urlWithoutHFPart.trim().lastIndexOf(".");
if (domainIndex <= 0) {
isValidDomainPartGlobal = false;
} else {
urlDomainPart = urlWithoutHFPart.trim().substring(domainIndex + 1);
boolean isValidDomain = (validateDomainPart(urlDomainPart));
if (!isValidDomain) {
//isInvalidurl = true;
isValidDomainPartGlobal = false;
}
}
//end
//Check Middle Part
Pattern middlePartPattern = Pattern.compile(
"^([-\\w]+\\.){1,4}[a-zA-Z]{2,6}$");
Matcher macthMiddlePart = middlePartPattern.matcher(urlWithoutHFPart.trim()) ;
boolean isValidMiddlePart = macthMiddlePart.matches();
if (!isValidMiddlePart) {
isValidMiddlePartGlobal = false;
}
return ((isValidFilePartGlobal && isValidDomainPartGlobal &&
isValidMiddlePartGlobal) ? true : false);
}
/**
* @param String
* This method returns true or false based on the input parameter String is a valid domain or not
*/
private static boolean validateDomainPart(String s) {
boolean isValidDomainPart = false;
String[] domainArray = {
"aero", "biz", "coop", "com", "edu", "gov", "info", "in", "mil",
"museum", "name", "net", "org", "pro", "uk", "fr" , "ca"
};
for (int i = 0; i < domainArray.length; i++) {
if (((domainArray[i].trim()).equalsIgnoreCase(s.trim()))) {
isValidDomainPart = true;
break;
}
}
return isValidDomainPart;
}
}
Thanks and Regards,
SACHIN S.TATHOD
Patni Computer System Ltd.
Magarpatta City, Cyber City,
Tower 3,Level I & II,
Hadapsar,Pune - 411028
Mobile No:- +91-9881239401
Email ID:-
[email protected]