Hey Je suis en train d'essayer une validation d'URL basée sur Quelle est la meilleure expression régulière pour vérifier si une chaîne est une URL valide? en java mais pour une raison quelconque, ça ne fonctionne pas. Des suggestions?
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class urlValidate {
/**
* @param args
*/
public static void main(String[] args) {
test_url("http://brb/", false);
test_url("https://localserver/projects/public/assets/javascript/widgets/UserBoxMenu/widget.css", false);
test_url("https://www.google.com/", true);
test_url("https://www.google.co.uk/projects/my%20folder/test.php", false);
test_url("https://myserver.localdomain/", true);
test_url("https://192.168.1.120/projects/index.php/", false);
test_url("https://192.168.1.1/", true);
test_url("https://projectpier-server.localdomain/projects/public/assets/javascript/widgets/UserBoxMenu/widget.css", false);
test_url("https://2.4.168.19/project-pier?c=test&a=b", false);
test_url("https://localhost/a/b/c/test.php?c=controller&arg1=20&arg2=20", false);
test_url("https://user:password@localhost/a/b/c/test.php?c=controller&arg1=20&arg2=20", false);
test_url("myserver",false);
test_url("https://tomcat:8080/",true);
test_url("https://facebook.com",false);
}
public static void test_url(String url, boolean expected) {
boolean valid = isURLValid(url, true);
String out = "URL Valide ? : " + (valid ? "oui" : "non") + " pour l'URL : "
+ url + ". Attendu : " + (expected ? "oui" : "non") + ". ";
if (valid == expected) {
out += "SUCCÈS\n";
} else {
out += "ÉCHEC\n";
}
System.out.println(out);
}
public static boolean isURLValid(String url, boolean forcehttps) {
String regex = "";
if (forcehttps) {
regex = "/^(https):\\/\\/";
} else {
regex = "/^(https?):\\/\\/";
}
regex += "((([a-z0-9]\\.|[a-z0-9][a-z0-9-]*[a-z0-9]\\.)*"
+ "[a-z][a-z0-9-]*[a-z0-9]"
+ "|((\\d|[1-9]\\d|1\\d{2}|2[0-4][0-9]|25[0-5])\\.){3}"
+ "(\\d|[1-9]\\d|1\\d{2}|2[0-4][0-9]|25[0-5])"
+ ")(:\\d+)?)"
+ "(#([a-z0-9$_\\.\\+!\\*\\'\\(\\),;:@&=-]|%[0-9a-f]{2})*)?(\\/)"
+ "$/i";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(url); // obtenir un objet matcher
return m.matches();
}
}