if (domain.trim().length() == 0) {
domainErrMsg = "specifydomain";
} else if (domain.length() > 61) {
domainErrMsg = "domainnamelimit";
} else if (domain.indexOf("www") == 0) {
domainErrMsg = "domaincontainswww";
} else {
int dotIndex = domain.lastIndexOf(".");
if (dotIndex != -1) {
if (dotIndex > 2 && dotIndex < 57) {
String domainName
= domain.
substring(0, dotIndex
);
String domainExtension
= domain.
substring(dotIndex
);
String[] validDomainExtensions
= {
".com", ".net", ".org", ".biz", ".coop", ".info", ".museum", ".name", // No I18N
".pro", ".edu", ".gov", ".int", ".mil", ".ac", ".ad", ".ae", ".af", ".ag", // No I18N
".ai", ".al", ".am", ".an", ".ao", ".aq", ".ar", ".as", ".at", ".au", ".aw", // No I18N
".az", ".ba", ".bb", ".bd", ".be", ".bf", ".bg", ".bh", ".bi", ".bj", ".bm", // No I18N
".bn", ".bo", ".br", ".bs", ".bt", ".bv", ".bw", ".by", ".bz", ".ca", ".cc", // No I18N
".cd", ".cf", ".cg", ".ch", ".ci", ".ck", ".cl", ".cm", ".cn", ".co", ".cr", // No I18N
".cu", ".cv", ".cx", ".cy", ".cz", ".de", ".dj", ".dk", ".dm", ".do", ".dz", // No I18N
".ec", ".ee", ".eg", ".eh", ".er", ".es", ".et", ".fi", ".fj", ".fk", ".fm", // No I18N
".fo", ".fr", ".ga", ".gd", ".ge", ".gf", ".gg", ".gh", ".gi", ".gl", ".gm", // No I18N
".gn", ".gp", ".gq", ".gr", ".gs", ".gt", ".gu", ".gv", ".gy", ".hk", ".hm", // No I18N
".hn", ".hr", ".ht", ".hu", ".id", ".ie", ".il", ".im", ".in", ".io", ".iq", // No I18N
".ir", ".is", ".it", ".je", ".jm", ".jo", ".jp", ".ke", ".kg", ".kh", ".ki", // No I18N
".km", ".kn", ".kp", ".kr", ".kw", ".ky", ".kz", ".la", ".lb", ".lc", ".li", // No I18N
".lk", ".lr", ".ls", ".lt", ".lu", ".lv", ".ly", ".ma", ".mc", ".md", ".mg", // No I18N
".mh", ".mk", ".ml", ".mm", ".mn", ".mo", ".mp", ".mq", ".mr", ".ms", ".mt", // No I18N
".mu", ".mv", ".mw", ".mx", ".my", ".mz", ".na", ".nc", ".ne", ".nf", ".ng", // No I18N
".ni", ".nl", ".no", ".np", ".nr", ".nu", ".nz", ".om", ".pa", ".pe", ".pf", // No I18N
".pg", ".ph", ".pk", ".pl", ".pm", ".pn", ".pr", ".ps", ".pt", ".pw", ".py", // No I18N
".qa", ".re", ".ro", ".rw", ".ru", ".sa", ".sb", ".sc", ".sd", ".se", ".sg", // No I18N
".sh", ".si", ".sj", ".sk", ".sl", ".sm", ".sn", ".so", ".sr", ".st", ".sv", // No I18N
".sy", ".sz", ".tc", ".td", ".tf", ".tg", ".th", ".tj", ".tk", ".tm", ".tn", // No I18N
".to", ".tp", ".tr", ".tt", ".tv", ".tw", ".tz", ".ua", ".ug", ".uk", ".um", // No I18N
".us", ".uy", ".uz", ".va", ".vc", ".ve", ".vg", ".vi", ".vn", ".vu", ".ws", // No I18N
".wf", ".ye", ".yt", ".yu", ".za", ".zm", ".zw"}; // No I18N
List
<String
> validExtensions
= Arrays.
asList(validDomainExtensions
);
if (!validExtensions.contains(domainExtension)) {
domainErrMsg = "domainextension";
} else {
for (int i = 0; i < domainName.length(); i++) {
int asciiCode = (int) domainName.charAt(i);
if ((asciiCode > 47 && asciiCode < 59) || (asciiCode > 64 && asciiCode < 91) || (asciiCode > 96 && asciiCode < 123) || asciiCode == 45 || asciiCode == 46) {
if ((i == 0 || i == domainName.length() - 1) && asciiCode == 45) {
domainErrMsg = "domainsymbolposition";
}
} else {
domainErrMsg = "domainspecialcharacters";
}
}
}
} else {
if (dotIndex <= 1) {
domainErrMsg = "domaintooshort";
} else if (dotIndex >= 57) {
domainErrMsg = "domaintoolong";
}
}
} else {
domainErrMsg = "domaininvalid";
}
}
return domainErrMsg;
}