IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

RegExp avec un . [RegExp]


Sujet :

JavaScript

  1. #1
    Membre éprouvé
    Avatar de michel.di
    Homme Profil pro
    Freelance
    Inscrit en
    Juin 2009
    Messages
    782
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 782
    Points : 1 042
    Points
    1 042
    Par défaut RegExp avec un .
    Bonjour à tous,
    J'ai un petit soucis avec une expression régulière.
    J'ai besoin de faire une expression qui reconnaisse les package java comme :
    org.test.nimportequoi ou juste org
    mais pour ça il faut que je mette un point dans l'expression, or un point peut remplacer n'importe quoi.

    Comment faire dans ce cas?

    Merci d'avance

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    Deux possibilités :
    echapper le . avec un \ devant => \.
    ou mettre le . dans une classe => [.]

  3. #3
    Membre éprouvé
    Avatar de michel.di
    Homme Profil pro
    Freelance
    Inscrit en
    Juin 2009
    Messages
    782
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 782
    Points : 1 042
    Points
    1 042
    Par défaut
    Merci SpaceFrog.
    Donc mon expression sera quelque chose comme ça:
    ?

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    là tu mets la ceinture et les bretelles ...


    suffit, le . etant déja dans une classe

    et ton imbrication de classe
    à moins que ton intention ne soit d'accepter le caratère [ dans la classe et le ] à la fin

  5. #5
    Membre éprouvé
    Avatar de michel.di
    Homme Profil pro
    Freelance
    Inscrit en
    Juin 2009
    Messages
    782
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 782
    Points : 1 042
    Points
    1 042
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    là tu mets la ceinture et les bretelles ...


    suffit, le . etant déja dans une classe

    et ton imbrication de classe
    à moins que ton intention ne soit d'accepter le caratère [ dans la classe et le ] à la fin
    Non faut pas que j'accepte [ et ] !
    Je fais tester ça! Merci

  6. #6
    Membre éprouvé
    Avatar de michel.di
    Homme Profil pro
    Freelance
    Inscrit en
    Juin 2009
    Messages
    782
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 782
    Points : 1 042
    Points
    1 042
    Par défaut
    J'ai une syntax error
    avec ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "regex":"^[a-z][.a-z]*$"

  7. #7
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    dans quel contexte ?
    l'extrait de code est un peu court ...

  8. #8
    Membre éprouvé
    Avatar de michel.di
    Homme Profil pro
    Freelance
    Inscrit en
    Juin 2009
    Messages
    782
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 782
    Points : 1 042
    Points
    1 042
    Par défaut
    En fait j'utilise le Jquery validator.
    Dedans tu spécifies les règles à utiliser.
    Donc pour un package Java j'ai ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    "package" :{
    	"regex":"^[a-z][.a-z]*$",
    	"alertText":"* Incorrect package"}
    Le contrôle se fait sur le regex et si le champs n'est pas valide l'alertText est affichée.
    Et la firebug me dit syntax error : ^[a-z][.a-z]*$

  9. #9
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    Toujours un peu court ...

    c'est un objet ?
    redigé en php ? direct en js ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    "package" :{
    	"regex":/^[a-z][.a-z]*$/,
    	"alertText":"* Incorrect package"}

  10. #10
    Membre éprouvé
    Avatar de michel.di
    Homme Profil pro
    Freelance
    Inscrit en
    Juin 2009
    Messages
    782
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 782
    Points : 1 042
    Points
    1 042
    Par défaut
    c'est dans du js :
    le script fourni ou tu mets les règles est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    308
    309
    310
    311
    312
    313
    314
    315
    316
    317
    318
     
    /*
     * Inline Form Validation Engine, jQuery plugin
     * 
     * Copyright(c) 2009, Cedric Dugas
     * http://www.position-relative.net
     *	
     * Form validation engine witch allow custom regex rules to be added.
     * Licenced under the MIT Licence
     */
     
    $(document).ready(function() {
     
    	// SUCCESS AJAX CALL, replace "success: false," by:     success : function() { callSuccessFunction() }, 
    	$("[class^=validate]").validationEngine({
    		success :  false,
    		failure : function() {}
    	})
    });
     
    jQuery.fn.validationEngine = function(settings) {
    	if($.validationEngineLanguage){					// IS THERE A LANGUAGE LOCALISATION ?
    		allRules = $.validationEngineLanguage.allRules
    	}else{
    		allRules = {"required":{    			  // Add your regex rules here, you can take telephone as an example
    							"regex":"none",
    							"alertText":"* This field is required",
    							"alertTextCheckboxMultiple":"* Please select an option",
    							"alertTextCheckboxe":"* This checkbox is required"},
    						"length":{
    							"regex":"none",
    							"alertText":"*Between ",
    							"alertText2":" and ",
    							"alertText3": " characters allowed"},
    						"minCheckbox":{
    							"regex":"none",
    							"alertText":"* Checks allowed Exceeded"},	
    						"confirm":{
    							"regex":"none",
    							"alertText":"* Your field is not matching"},		
    						"telephone":{
    							"regex":"/^[0-9\-\(\)\ ]+$/",
    							"alertText":"* Invalid phone number"},	
    						"email":{
    							"regex":"/^[a-zA-Z0-9_\.\-]+\@([a-zA-Z0-9\-]+\.)+[a-zA-Z0-9]{2,4}$/",
    							"alertText":"* Invalid email address"},	
    						"date":{
    							"regex":"/^[0-9]{1,2}\-\[0-9]{1,2}\-\[0-9]{4}$/",
                                 "alertText":"* Invalid date, must be in MM/DD/YYYY format"},
    						"onlyNumber":{
    							"regex":"/^[0-9\ ]+$/",
    							"alertText":"* Numbers only"},	
    						"noSpecialCaracters":{
    							"regex":"/^[0-9a-zA-Z]+$/",
    							"alertText":"* No special caracters allowed"},	
    						"onlyLetter":{
    							"regex":"/^[a-zA-Z\ \']+$/",
    							"alertText":"* Letters only"},
    						"onlyLetterAndNumber":{
    								"regex":"/^[a-zA-Z0-9\ \']+$/",
    								"alertText":"* Letters and numbers only"},
    						"package" :{
    								"regex":"^[a-z][.a-z]*$",
    								"alertText":"* Incorrect package"}
    					}	
    	}
     
     	settings = jQuery.extend({
    		allrules:allRules,
    		inlineValidation: true,
    		success : false,
    		failure : function() {}
    	}, settings);	
     
    	$("form").bind("submit", function(caller){   // ON FORM SUBMIT, CONTROL AJAX FUNCTION IF SPECIFIED ON DOCUMENT READY
    		if(submitValidation(this) == false){
    			if (settings.success){
    				settings.success && settings.success(); 
    				return false;
    			}
    		}else{
    			settings.failure && settings.failure(); 
    			return false;
    		}
    	})
    	if(settings.inlineValidation == true){ 		// Validating Inline ?
     
    		$(this).not("[type=checkbox]").bind("blur", function(caller){loadValidation(this)})
    		$(this+"[type=checkbox]").bind("click", function(caller){loadValidation(this)})
    	}
    	var buildPrompt = function(caller,promptText,showTriangle) {			// ERROR PROMPT CREATION AND DISPLAY WHEN AN ERROR OCCUR
    		var divFormError = document.createElement('div')
    		var formErrorContent = document.createElement('div')
    		var arrow = document.createElement('div')
     
     
    		$(divFormError).addClass("formError")
    		$(divFormError).addClass($(caller).attr("id"))
    		$(formErrorContent).addClass("formErrorContent")
    		$(arrow).addClass("formErrorArrow")
     
    		$("body").append(divFormError)
    		$(divFormError).append(arrow)
    		$(divFormError).append(formErrorContent)
     
    		if(showTriangle == true){		// NO TRIANGLE ON MAX CHECKBOX AND RADIO
    			$(arrow).html('<div class="line10"></div><div class="line9"></div><div class="line8"></div><div class="line7"></div><div class="line6"></div><div class="line5"></div><div class="line4"></div><div class="line3"></div><div class="line2"></div><div class="line1"></div>');
    		}
    		$(formErrorContent).html(promptText)
     
    		callerTopPosition = $(caller).offset().top;
    		callerleftPosition = $(caller).offset().left;
    		callerWidth =  $(caller).width()
    		callerHeight =  $(caller).height()
    		inputHeight = $(divFormError).height()
     
    		callerleftPosition = callerleftPosition + callerWidth -30
    		callerTopPosition = callerTopPosition  -inputHeight -10
     
    		$(divFormError).css({
    			top:callerTopPosition,
    			left:callerleftPosition,
    			opacity:0
    		})
    		$(divFormError).fadeTo("fast",0.8);
    	};
    	var updatePromptText = function(caller,promptText) {	// UPDATE TEXT ERROR IF AN ERROR IS ALREADY DISPLAYED
    		updateThisPrompt =  $(caller).attr("id")
    		$("."+updateThisPrompt).find(".formErrorContent").html(promptText)
     
    		callerTopPosition  = $(caller).offset().top;
    		inputHeight = $("."+updateThisPrompt).height()
     
    		callerTopPosition = callerTopPosition  -inputHeight -10
    		$("."+updateThisPrompt).animate({
    			top:callerTopPosition
    		});
    	}
    	var loadValidation = function(caller) {		// GET VALIDATIONS TO BE EXECUTED
     
    		rulesParsing = $(caller).attr('class');
    		rulesRegExp = /\[(.*)\]/;
    		getRules = rulesRegExp.exec(rulesParsing);
    		str = getRules[1]
    		pattern = /\W+/;
    		result= str.split(pattern);	
     
    		var validateCalll = validateCall(caller,result)
    		return validateCalll
     
    	};
    	var validateCall = function(caller,rules) {	// EXECUTE VALIDATION REQUIRED BY THE USER FOR THIS FIELD
    		var promptText =""	
    		var prompt = $(caller).attr("id");
    		var caller = caller;
    		var callerName = $(caller).attr("name");
    		isError = false;
    		callerType = $(caller).attr("type");
     
    		for (i=0; i<rules.length;i++){
    			switch (rules[i]){
    			case "optional": 
    				if(!$(caller).val()){
    					closePrompt(caller)
    					return isError
    				}
    			break;
    			case "required": 
    				_required(caller,rules);
    			break;
    			case "custom": 
    				 _customRegex(caller,rules,i);
    			break;
    			case "length": 
    				 _length(caller,rules,i);
    			break;
    			case "minCheckbox": 
    				 _minCheckbox(caller,rules,i);
    			break;
    			case "confirm": 
    				 _confirm(caller,rules,i);
    			break;
    			default :;
    			};
    		};
    		if (isError == true){
    			var showTriangle = true
    			if($("input[name="+callerName+"]").size()> 1 && callerType == "radio") {		// Hack for radio group button, the validation go the first radio
    				caller = $("input[name="+callerName+"]:first")
    				showTriangle = false
    				var callerId ="."+ $(caller).attr("id")
    				if($(callerId).size()==0){ isError = true }else{ isError = false}
    			}
    			if($("input[name="+callerName+"]").size()> 1 && callerType == "checkbox") {		// Hack for radio group button, the validation go the first radio
    				caller = $("input[name="+callerName+"]:first")
    				showTriangle = false
    				var callerId ="div."+ $(caller).attr("id")
    				if($(callerId).size()==0){ isError = true }else{ isError = false}
    			}
    			if (isError == true){ // show only one
    				($("div."+prompt).size() ==0) ? buildPrompt(caller,promptText,showTriangle)	: updatePromptText(caller,promptText)
    			}
    		}else{
    			if($("input[name="+callerName+"]").size()> 1 && callerType == "radio") {		// Hack for radio group button, the validation go the first radio
    				caller = $("input[name="+callerName+"]:first")
    			}
    			if($("input[name="+callerName+"]").size()> 1 && callerType == "checkbox") {		// Hack for radio group button, the validation go the first radio
    				caller = $("input[name="+callerName+"]:first")
    			}
    			closePrompt(caller)
    		}		
     
    		/* VALIDATION FUNCTIONS */
    		function _required(caller,rules){   // VALIDATE BLANK FIELD
    			callerType = $(caller).attr("type")
     
    			if (callerType == "text" || callerType == "password" || callerType == "textarea"){
     
    				if(!$(caller).val()){
    					isError = true
    					promptText += settings.allrules[rules[i]].alertText+"<br />"
    				}	
    			}
    			if (callerType == "radio" || callerType == "checkbox" ){
    				callerName = $(caller).attr("name")
     
    				if($("input[name="+callerName+"]:checked").size() == 0) {
    					isError = true
    					if($("input[name="+callerName+"]").size() ==1) {
    						promptText += settings.allrules[rules[i]].alertTextCheckboxe+"<br />" 
    					}else{
    						 promptText += settings.allrules[rules[i]].alertTextCheckboxMultiple+"<br />"
    					}	
    				}
    			}	
    			if (callerType == "select-one") { // added by paul@kinetek.net for select boxes, Thank you
    					callerName = $(caller).attr("id");
     
    				if(!$("select[name="+callerName+"]").val()) {
    					isError = true;
    					promptText += settings.allrules[rules[i]].alertText+"<br />";
    				}
    			}
    			if (callerType == "select-multiple") { // added by paul@kinetek.net for select boxes, Thank you
    					callerName = $(caller).attr("id");
     
    				if(!$("#"+callerName).val()) {
    					isError = true;
    					promptText += settings.allrules[rules[i]].alertText+"<br />";
    				}
    			}
    		}
    		function _customRegex(caller,rules,position){		 // VALIDATE REGEX RULES
    			customRule = rules[position+1]
    			pattern = eval(settings.allrules[customRule].regex)
     
    			if(!pattern.test($(caller).attr('value'))){
    				isError = true
    				promptText += settings.allrules[customRule].alertText+"<br />"
    			}
    		}
    		function _confirm(caller,rules,position){		 // VALIDATE FIELD MATCH
    			confirmField = rules[position+1]
     
    			if($(caller).attr('value') != $("#"+confirmField).attr('value')){
    				isError = true
    				promptText += settings.allrules["confirm"].alertText+"<br />"
    			}
    		}
    		function _length(caller,rules,position){    // VALIDATE LENGTH
     
    			startLength = eval(rules[position+1])
    			endLength = eval(rules[position+2])
    			feildLength = $(caller).attr('value').length
     
    			if(feildLength<startLength || feildLength>endLength){
    				isError = true
    				promptText += settings.allrules["length"].alertText+startLength+settings.allrules["length"].alertText2+endLength+settings.allrules["length"].alertText3+"<br />"
    			}
    		}
    		function _minCheckbox(caller,rules,position){    // VALIDATE CHECKBOX NUMBER
     
    			nbCheck = eval(rules[position+1])
    			groupname = $(caller).attr("name")
    			groupSize = $("input[name="+groupname+"]:checked").size()
     
    			if(groupSize > nbCheck){	
    				isError = true
    				promptText += settings.allrules["minCheckbox"].alertText+"<br />"
    			}
    		}
    		return(isError) ? isError : false;
    	};
    	var closePrompt = function(caller) {	// CLOSE PROMPT WHEN ERROR CORRECTED
    		closingPrompt = $(caller).attr("id")
     
    		$("."+closingPrompt).fadeTo("fast",0,function(){
    			$("."+closingPrompt).remove()
    		});
    	};
    	var submitValidation = function(caller) {	// FORM SUBMIT VALIDATION LOOPING INLINE VALIDATION
    		var stopForm = false
    		$(caller).find(".formError").remove()
    		var toValidateSize = $(caller).find("[class^=validate]").size()
     
    		$(caller).find("[class^=validate]").each(function(){
    			var validationPass = loadValidation(this)
    			return(validationPass) ? stopForm = true : "";	
    		});
    		if(stopForm){							// GET IF THERE IS AN ERROR OR NOT FROM THIS VALIDATION FUNCTIONS
    			destination = $(".formError:first").offset().top;
    			$("html:not(:animated),body:not(:animated)").animate({ scrollTop: destination}, 1100)
    			return true;
    		}else{
    			return false
    		}
    	};
    };
    et mon input est celui-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input class="validate[required,custom[package]] text-input" type="text" name="package" id="package" />

  11. #11
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    Attention !
    la reg tu la stockes sous quelle forme ?
    string ou regex direct ?

    si c'est sous forme de regex
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    allRules = {"required":{    			  // Add your regex rules here, you can take telephone as an example
    			"regex":"none",
    			"alertText":"* This field is required",
    			"alertTextCheckboxMultiple":"* Please select an option",
    			"alertTextCheckboxe":"* This checkbox is required"},
                "length":{
    			"regex":"none",
                    	"alertText":"*Between ",
    			"alertText2":" and ",
    			"alertText3": " characters allowed"},
                "minCheckbox":{
    			"regex":"none",
    			"alertText":"* Checks allowed Exceeded"},	
    			"confirm":{
                              		"regex":"none",
    					"alertText":"* Your field is not matching"},		
    			"telephone":{
    					"regex":/[0-9\-\(\)\ ]+$/,
    					"alertText":"* Invalid phone number"},	
    			"email":{
    					"regex":/[a-zA-Z0-9_\.\-]+\@([a-zA-Z0-9\-]+\.)+[a-zA-Z0-9]{2,4}$/,
    					"alertText":"* Invalid email address"},	
    			"date":{
    				"regex":/[0-9]{1,2}\-\[0-9]{1,2}\-\[0-9]{4}$/,
                                    "alertText":"* Invalid date, must be in MM/DD/YYYY format"},
    			"onlyNumber":{
    					"regex":/[0-9\ ]+$/,
    					"alertText":"* Numbers only"},	
    			"noSpecialCaracters":{
                				"regex":/[0-9a-zA-Z]+$/,
    					"alertText":"* No special caracters allowed"},	
    			"onlyLetter":{
    					"regex":/[a-zA-Z\ \']+$/,
    					"alertText":"* Letters only"},
    			"onlyLetterAndNumber":{
    						"regex":/[a-zA-Z0-9\ \']+$/,
    						"alertText":"* Letters and numbers only"},
    			"package" :{
                                          		"regex":"^[a-z][.a-z]*$",
    					"alertText":"* Incorrect package"}
    		}
    si c'est sous forme de string remplace les / / par " "

    il faut savoir si le plugin prend la reg direct ou la transforme avec new RegExp()


    Rappel les caractères dans une classe n'ont pas besoin d'être échappé
    sauf le ] ou le - si il n'est pas à la fin

  12. #12
    Membre éprouvé
    Avatar de michel.di
    Homme Profil pro
    Freelance
    Inscrit en
    Juin 2009
    Messages
    782
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 782
    Points : 1 042
    Points
    1 042
    Par défaut
    Merci pour l'infio.
    Du coup en faisant ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    "package" :{
    	"regex":"/^[a-z][.a-z]*$/",
    	"alertText":"* Incorrect package"}
    ça fonctionne mais l'expression accepté org.test. or il ne faut pas que le dernier point soit pris

  13. #13
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "regex":"/^[a-z][.a-z]*[^.]$/",

  14. #14
    Membre éprouvé
    Avatar de michel.di
    Homme Profil pro
    Freelance
    Inscrit en
    Juin 2009
    Messages
    782
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 782
    Points : 1 042
    Points
    1 042
    Par défaut
    Super ça marche, merci SpaceFrog!

  15. #15
    Membre éprouvé
    Avatar de michel.di
    Homme Profil pro
    Freelance
    Inscrit en
    Juin 2009
    Messages
    782
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 782
    Points : 1 042
    Points
    1 042
    Par défaut
    Je vais encore t'embêter un peu
    Je cherche maintenant à faire la même chose mais avec un tiret, j'ai donc fait ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "regex":"/^[a-z][-a-z]*[^-]$/",
    ou ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "regex":"/^[a-z][\-a-z]*[^\-]$/",
    ou même encore ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "regex":"/^[a-z][\-]*[a-z]*[^\-]$/",
    Mais rien ne fonctionne!

  16. #16
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "regex":"/^[a-z][a-z-]*[^-]$/",

  17. #17
    Membre éprouvé
    Avatar de michel.di
    Homme Profil pro
    Freelance
    Inscrit en
    Juin 2009
    Messages
    782
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 782
    Points : 1 042
    Points
    1 042
    Par défaut
    ça marche, merci beaucoup SpaceFrog!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [RegEx] Regexp avec un mot à ne pas matcher
    Par m0ul3sh0t dans le forum Langage
    Réponses: 12
    Dernier message: 20/11/2009, 14h03
  2. sed et regexp avec variables
    Par vpovpo dans le forum Shell et commandes GNU
    Réponses: 0
    Dernier message: 29/12/2007, 20h52
  3. [Regex]Match d'une regexp avec une chaîne avec caractères spéciaux
    Par gdawirs dans le forum Collection et Stream
    Réponses: 13
    Dernier message: 25/11/2005, 12h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo