Je travaille à lélaboration dun FrameWork J2EE et jaimerais ajouter des contrôles javascript via la validation dexpressions régulières. Par exemple, lutilisateur peut créer une variable (colonne dune table SGBDR) mais son nom doit être différent dun verbe SQL (SELECT, UPDATE, DELETE, FROM, DATE, ...). La fonction de test : <<
<script> function testRegEx(s,regularExpression) { ok=false; if (s.value!="" && regularExpression!="" ) { var objRegExp = new RegExp(regularExpression); ok=objRegExp.test(s.value); } return !ok; } </script>
>> Un essai me génère : <<
<script> function SDT_VAR_CONTROL3(e){ var ret=true; try{ if ( e.value == null || e.value == "" ) {getMainFrame().addMsgInfo("La variable <b><i>"+e.title+"</i></b> (NAME) est obligatoire.",e);ret=false;} if (ret && testRegEx(e,"SELECT|UPDATE|DELETE" )) {getMainFrame().addMsgInfo("La valeur saisie <b>"+e.value+"</b> ("+e.title+" ) est incorrecte.",e);ret=false;} }catch (err) {alert(err);} if (ret) getMainFrame().rmvMsgInfo(e); return ret; } </script> >> Lexpression "SELECT|UPDATE|DELETE" semble être validée à tous les coups. Je ne vois pas où est mon erreur. Le nom de variable SELECT2 est valide donc je ne dois pas mettre de paranthèses autour de lexpression régulière.
Qui peut mouvrir les yeux ?
Le code qui vérifie les expressions régulières côté serveur, écrit en java, remplit parfaitement son rôle et rejette les variables incorrectes.
... !Pattern.matches(regex,varName) ... où regex st l'expression régulière et varName le nom de la variable saisi...
Marsh Posté le 11-07-2005 à 13:22:46
JavaScript Expression Régulière
Bonjour,
Je travaille à lélaboration dun FrameWork J2EE et jaimerais ajouter des contrôles javascript via la validation dexpressions régulières. Par exemple, lutilisateur peut créer une variable (colonne dune table SGBDR) mais son nom doit être différent dun verbe SQL (SELECT, UPDATE, DELETE, FROM, DATE, ...). La fonction de test : <<
<script>
function testRegEx(s,regularExpression) {
ok=false;
if (s.value!="" && regularExpression!="" ) {
var objRegExp = new RegExp(regularExpression);
ok=objRegExp.test(s.value);
}
return !ok;
}
</script>
>> Un essai me génère : <<
<script>
function SDT_VAR_CONTROL3(e){
var ret=true;
try{
if ( e.value == null || e.value == "" ) {getMainFrame().addMsgInfo("La variable <b><i>"+e.title+"</i></b> (NAME) est obligatoire.",e);ret=false;}
if (ret && testRegEx(e,"SELECT|UPDATE|DELETE" )) {getMainFrame().addMsgInfo("La valeur saisie <b>"+e.value+"</b> ("+e.title+" ) est incorrecte.",e);ret=false;}
}catch (err) {alert(err);}
if (ret) getMainFrame().rmvMsgInfo(e);
return ret;
}
</script>
>>
Lexpression "SELECT|UPDATE|DELETE" semble être validée à tous les coups. Je ne vois pas où est mon erreur. Le nom de variable SELECT2 est valide donc je ne dois pas mettre de paranthèses autour de lexpression régulière.
Qui peut mouvrir les yeux ?
Le code qui vérifie les expressions régulières côté serveur, écrit en java, remplit parfaitement son rôle et rejette les variables incorrectes.
... !Pattern.matches(regex,varName) ... où regex st l'expression régulière et varName le nom de la variable saisi...
DDD