Je suis coincé dans un RegExp où je dois valider la version de l'application pour l'App Store et le Play-Store. J'ai essayé plusieurs RegExp mais aucun d'entre eux ne m'est utile. Voici l'exemple qui a réussi le test
Version de l'application jusqu'à 2-3 décimales
1.0 // pass 1.0.0 // pass 1.0.0.0 // fail a.0 // fail 1 // pass
J'ai trouvé un RegExp [0-9] + \ . [0-9] + \. [0-9] + \. [0-9] + mais cela ne sera valide que si j'ai entré 4 décimales. Je ne sais pas comment modifier cela.
Veuillez aider.
4 Réponses :
^\d+(?:\.\d+){0,2}$
Cela commencera par un nombre ( \ d est le même que [0-9] ), puis zéro ou plusieurs virgules décimales suivis de plusieurs nombres.
var input = [
"1.0", // pass
"1.0.0", // pass
"1.0.0.0", // fail
"a.0", // fail
"1", // pass
"1.",
"1.a"
]
var regex = /^\d+(?:\.\d+){0,2}$/;
input.forEach(function(item) {
console.log(item, regex.test(item));
});
Si vous souhaitez limiter le nombre de chiffres, vous pouvez changer le \ d + en \ d {n, m} (remplacer n avec le nombre minimum de chiffres et m avec le nombre maximum de chiffres).
Le + est le même que {1,} qui signifie "un ou plusieurs".
Selon OP: 1.0.0.0 // échouer mais votre code renvoie true
@MaheerAli OP modifier les exigences de la question - dans cette version cet exemple passe.
@MaheerAli Le PO a changé les exigences après avoir répondu à la question. Je l'ai mis à jour maintenant.
Essayez
let versions= [
"1.0",
"1.0.0",
"1.0.0.0",
"a.0",
"1",
]
versions.forEach(v=> console.log(v, /^(\d+\.){0,2}\d+$/.test(v) ) );
^(\d+\.){0,2}\d+$
Cela acceptera des choses comme 1. et 1.a - Il n'est pas clair d'après la question si c'est acceptable.
vous avez mentionné jusqu'à 2-3 décimales alors le RegExp doit être ce
^(\d+\.)?(\d+\.)?(\d+\.)?(\*|\d+)?$
Vous pouvez essayer l'expression régulière suivante
let reg = /^[0-9]((\.)[0-9]){0,2}$/
console.log(reg.test('1.0')) //true
console.log(reg.test('1.1.0')) //true
console.log(reg.test('1')) //true
console.log(reg.test('1.')) //false
console.log(reg.test('1.a')) //false
console.log(reg.test('1.1.1.1')) //false
Vous avez oublié d'échapper au . . Ainsi, des éléments comme 1 ° 1 et 1M1 passeront également le test ...