Ich muss auf "[beliebige Nummer]" in einem String in Javascript testen. wie würde ich es passen?
Oh, "[" und "]" müssen auch übereinstimmen.
zeichenfolge wie "[1]" oder "[12345]" ist eine Übereinstimmung.
Nichtübereinstimmung: "[23432" oder "1]"
Also zum Beispiel:
$('.form .section .parent').find('input.text').each(function(index){
$(this).attr("name", $(this).attr("name").replace("[current]", "['"+index+"']"));
});
Ich muss Eingabefelder name ersetzen: "items [0] .firstname" bis "items [1] .firstname" Danke
UPDATE: für Ihre aktualisierte Frage
variable.match(/\[[0-9]+\]/);
Versuche dies:
variable.match(/[0-9]+/); // for unsigned integers
variable.match(/[-0-9]+/); // for signed integers
variable.match(/[-.0-9]+/); // for signed float numbers
Hoffe das hilft!
if("123".search(/^\d+$/) >= 0){
// its a number
}
var mask = /^\d+$/;
if ( myString.exec(mask) ){
/* That's a number */
}
Sie können die folgende Funktion verwenden, um den größten [number]
in einer beliebigen Zeichenfolge zu finden.
Es gibt den Wert des größten [number]
als Integer zurück.
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;
}
Die folgende Demo berechnet bei jedem Klicken auf die Schaltfläche die größte Zahl in Ihrem Textbereich.
Sie können damit mit dem Textbereich herumspielen und die Funktion mit einem anderen Text erneut testen.
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>
Siehe auch this Fiddle !