Toutes les suggestions précédentes sont excellentes. Selon vos besoins, vous pouvez en choisir un. J'ai ajouté un peu plus à ce qui suit pour répartir la valeur pour vous. Modifiez en fonction de vos besoins.
function getValue(num) {
var matches=num.match(/(^\s*\d+\.?\d*)(%)?\s*$/);
var m = false, p = false, v = 0;
if (matches) {
m = true;
p = (matches[2]=="%");
v = matches[1];
}
return {isMatch: m, isPercent: p, value: v};
}
var vals = "12%,12.888%,12.00%,12.00001%,12.123344%,100,100.,100.55252,100.254575,notnum".split(',');
for(var i=0;i<vals.length;i++) {
var gv = getValue(vals[i]);
console.log("string="+vals[i]," isMatch="+gv.isMatch," isPercent="+gv.isPercent," value="+gv.value);
}
sortie est:
string=12% isMatch=true isPercent=true value=12
string=12.888% isMatch=true isPercent=true value=12.888
string=12.00% isMatch=true isPercent=true value=12.00
string=12.00001% isMatch=true isPercent=true value=12.00001
string=12.123344% isMatch=true isPercent=true value=12.123344
string=100 isMatch=true isPercent=false value=100
string=100. isMatch=true isPercent=false value=100.
string=100.55252 isMatch=true isPercent=false value=100.55252
string=100.254575 isMatch=true isPercent=false value=100.254575
string=notnum isMatch=false isPercent=false value=0
Cela n'a rien ** ** à voir avec jQuery. Regex en JavaScript est ** juste JavaScript. ** –
Soyons honnêtes ici. Vérifier si le dernier caractère d'une chaîne est un signe de pourcentage n'a pas forcément grand-chose à voir avec les expressions régulières. –
mais voulez faire avec regex :) –