Bonjour,

je suis en train de me battre avec une expression régulière (et c'est elle qui gagne! ) pour n'autoriser que :

chiffres 0 à 9 (exemple 12 / 2 / 0 ) + un tiret (-) + chiffres 0 à 9

sous forme 1-12 ou 0-12 ou 12 (seul) , mais j’aimerais également autoriser le terme "NA"

return /^(?!-)\d*[-]?\d*$|[N,A]/.test(value); });.
Celui.ci est OK pour la séquence de chiffres 1-2 etc, mais autorise toutes les lettre si on commence par le N

Une idée ?


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
  $("#Equipes").inputFilter(function(value) {
    return /^(?!-)\d*[-]?\d*$|[N,A]/.test(value); });
 
 
// Ajoute un filtre sur les entrees selon le regex en paramèetre 
(function($) {
  $.fn.inputFilter = function(inputFilter) {
    return this.on("input keydown keyup mousedown mouseup select contextmenu drop", function() {
      if (inputFilter(this.value)) {
        this.oldValue = this.value;
        this.oldSelectionStart = this.selectionStart;
        this.oldSelectionEnd = this.selectionEnd;
      } else if (this.hasOwnProperty("oldValue")) {
        this.value = this.oldValue;
        this.setSelectionRange(this.oldSelectionStart, this.oldSelectionEnd);
      }
    });
  };
}(jQuery));