Subversion Repositories eFlore/Applications.coel

Rev

Rev 1415 | Blame | Compare with Previous | Last modification | View Log | RSS feed

package org.tela_botanica.client.util;

public class Pattern {
        
        public static final String url =  "^(?:(?:ht|f)tp(?:s?)\\:\\/\\/|~/|/)?"+ // Protocol
                "(?:\\w+:\\w+@)?"+ // Username:Password
                "(?:(?:[-\\w]+\\.)+"+ // Subdomains 
                "(?:com|org|net|gov|mil|biz|info|mobi|name|aero|jobs|museum|travel|[a-z]{2}))"+ // TopLevel Domains
                "(?::[\\d]{1,5})?"+ // Port
                "(?:(?:(?:/(?:[-\\w~!$+|.,=]|%[a-f\\d]{2})+)+|/)+|\\?|#)?"+ // Directories
                "(?:(?:\\?(?:[-\\w~!$+|.,*:]|%[a-f\\d{2}])+=(?:[-\\w~!$+|.,*:=]|%[a-f\\d]{2})*)(?:&(?:[-\\w~!$+|.,*:]|%[a-f\\d{2}])+=(?:[-\\w~!$+|.,*:=]|%[a-f\\d]{2})*)*)*"+ // Query
                "(?:#(?:[-\\w~!$+|.,*:=]|%[a-f\\d]{2})*)?$"; // Anchor
        
        public static final String email = "[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*"+ // Identité
                "@"+ // At
                "(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?";// Domaine
        
        public static final String heureMinute = "^(?:[0-1][0-9]|2[0-4])"+ // Heure au format 24h
                ":"+ // Séparateur d'heure et minute
                "(?:[0-5][0-9]|60)$"; // Minutes;
        
        public static final String latitude = "^-?"+ // Nombre positif ou négatif
                "([0-8]?[0-9]([.,][0-9]*)?|90)$"; // Nombre décimal allant de 0 à 89 ou nombre entier valant 90 avec pour séparateur des décimales "." ou ","
        
        public static final String longitude = "^-?"+ // Nombre positif ou négatif
        "((1[0-7][0-9]|[1-9]?[0-9])([.,][0-9]*)?|180)$"; // Nombre décimal allant de 0 à 179 ou nombre entier valant 180 avec pour séparateur des décimales "." ou ","
        
        /**
         * Méthode similaire à la méthode : java.util.Pattern.quote().
         * java.util.Pattern n'est pas implémenté par GWT.
         * Nous protégeons les caractères spéciaux.
         * 
         * @link http://java.developpez.com/faq/java/?page=langage_chaine
         * @param chaine
         * @return
         */
        public static String quote(String chaine) {
                chaine.replace("\\", "\\\\");
                
                String[] caracteresSpeciaux = {".", "$", "[", "]", "(", ")", "{", "}", "^", "?", "*", "+", "-", "|"};
                for (int i = 0; i < caracteresSpeciaux.length; i++) {
                        chaine = chaine.replace(caracteresSpeciaux[i], "\\"+caracteresSpeciaux[i]);
                }
                return chaine;
        }
}