J'ai besoin de tester "[n'importe quel nombre]" dans une chaîne en javascript. comment pourrais-je lui correspondre?
Oh, "[" et "]" doivent également être appariés.
donc une chaîne comme "[1]" ou "[12345]" est une correspondance.
Non concordance: "[23432" ou "1]"
Donc par exemple:
$('.form .section .parent').find('input.text').each(function(index){
$(this).attr("name", $(this).attr("name").replace("[current]", "['"+index+"']"));
});
Je dois remplacer le nom des champs de saisie: "items [0] .firstname" par "items [1] .firstname" Merci.
UPDATE: pour votre question mise à jour
variable.match(/\[[0-9]+\]/);
Essaye ça:
variable.match(/[0-9]+/); // for unsigned integers
variable.match(/[-0-9]+/); // for signed integers
variable.match(/[-.0-9]+/); // for signed float numbers
J'espère que cela t'aides!
if("123".search(/^\d+$/) >= 0){
// its a number
}
var mask = /^\d+$/;
if ( myString.exec(mask) ){
/* That's a number */
}
Vous pouvez utiliser la fonction suivante pour trouver le plus gros [number]
dans une chaîne.
Il renvoie la valeur du plus gros [number]
sous forme d'entier.
var biggestNumber = function(str) {
var pattern = /\[([0-9]+)\]/g, match, biggest = 0;
while ((match = pattern.exec(str)) !== null) {
if (match.index === pattern.lastIndex) {
pattern.lastIndex++;
}
match[1] = parseInt(match[1]);
if(biggest < match[1]) {
biggest = match[1];
}
}
return biggest;
}
La démo suivante calcule le plus grand nombre dans votre zone de texte chaque fois que vous cliquez sur le bouton.
Il vous permet de jouer avec la zone de texte et de tester à nouveau la fonction avec un texte différent.
var biggestNumber = function(str) {
var pattern = /\[([0-9]+)\]/g, match, biggest = 0;
while ((match = pattern.exec(str)) !== null) {
if (match.index === pattern.lastIndex) {
pattern.lastIndex++;
}
match[1] = parseInt(match[1]);
if(biggest < match[1]) {
biggest = match[1];
}
}
return biggest;
}
document.getElementById("myButton").addEventListener("click", function() {
alert(biggestNumber(document.getElementById("myTextArea").value));
});
<div>
<textarea rows="6" cols="50" id="myTextArea">
this is a test [1] also this [2] is a test
and again [18] this is a test.
items[14].items[29].firstname too is a test!
items[4].firstname too is a test!
</textarea>
</div>
<div>
<button id="myButton">Try me</button>
</div>
Voir aussi this Fiddle !