Le format de données requis est :
1
10
100
1-5
10-50
100-500
0.5
10.5
10.5-20
10.5-20.5
10-20.5
C'est-à-dire que la taille du nombre requis pour la vérification n'est pas limitée, il peut avoir ou non des nombres à virgule flottante, il peut avoir "-" ou non, et une décimale est conservée
Voici l'expression régulière que j'ai écrite :
La copie suivante est fausse :
var a=/^\d{1,}\.?\d?-?(\d{1,})?\.?\d?$/;
Corrigé à :
var a=/^\d{1,}\.?\d{1}?-?(\d{1,})?\.?\d{1}?$/;
Mais pourquoi 20,5555 est-il toujours vrai ?
/^d{1,}.?d?-?(d{1,})?.?d?$/
匹配过程如下:首先
d{1,}
匹配的是"20";.?
匹配".";d?
匹配"5",?
匹配了1次;-?
匹配"",因为?
匹配0或者1次,在这里匹配0次;(d{1,})?
匹配"555",此时?
匹配1次;.?d?
匹配"",此时两个?
都匹配0次;$
Correspond à la fin de la chaîne, donc "20.5555" peut correspondre.Mise à jour1 : Le processus de correspondance de
/^d{1,}.?d{1}?-?(d{1,})?.?d{1}?$/
est le suivant :d{1,}
correspond à "20";.?
correspond à ".";d{1}?
会首先尝试匹配一个数字,此时匹配"5",?
Correspondant 1 fois ;-?
会匹配"",此时?
Correspondant 0 fois(d{1,})?
correspond à "555";.?
匹配"",此时?
correspond à "", à ce moment?
correspond à 0 fois ;d{1}?
correspond à "",?
correspond à 0 fois ;d{1}
signifie que le numéro est répété une fois, donc cette expression régulière est en fait la même chose qued
, il n'y a donc aucune différence entre l'expression régulière mise à jour et l'expression régulière d'origine.d{1}?
匹配"",?
匹配0次;d{1}
表示数字重复一次,所以该正则和d
???Pourquoi utiliser des expressions régulières