Heim >Web-Frontend >js-Tutorial >Wie extrahiere ich Zahlen aus Zeichenfolgen in JavaScript?
Bei der Arbeit mit Zeichenfolgen in JavaScript ist es häufig erforderlich, bestimmte Zahlen daraus zu extrahieren. Dies kann in verschiedenen Szenarien auftreten, beispielsweise beim Parsen von IDs aus DOM-Elementen oder beim Extrahieren numerischer Daten aus Textdateien.
Spezifisches Beispiel: Zahlenextraktion aus einer Zeichenfolge
Betrachten Sie a Zeichenfolge wie „#box2“, wobei wir nur die Zahl 2 extrahieren müssen. Verwenden Sie den folgenden Code Snippet:
var thestring = $(this).attr('href'); var thenum = thestring.replace(/(^.+)(\w\d+\w)(.+$)/i, '');
würde in der Warnung immer noch „#box2“ zurückgeben. Der Grund dafür ist, dass der verwendete reguläre Ausdruck die nichtstelligen Zeichen vor und nach der Zahl nicht korrekt erfasst.
Lösung für ein bestimmtes Beispiel
Um dieses Problem zu beheben Für das spezifische Beispiel von „#box2“ können wir den folgenden Code verwenden:
var thenum = thestring.replace(/^\D+/g, ''); // Replace all leading non-digits with nothing
Dieser reguläre Ausdruck entfernt effektiv alle führenden Nicht-Ziffern-Zeichen aus der Zeichenfolge Isolieren der Zahl.
Allgemeine Lösung mit Regex
Für komplexere Zeichenfolgen besteht ein allgemeinerer Ansatz darin, einen regulären Ausdruck zu verwenden, der nur mit der Zahl übereinstimmt:
thenum = "foo3bar5".match(/\d+/)[0] // "3"
Dieser Ausdruck gibt den ersten Satz aufeinanderfolgender Ziffern in der Zeichenfolge zurück.
Regex Generator
Für komplexere reguläre Ausdrücke können Sie ein Regex-Generator-Tool wie das unten bereitgestellte verwenden:
`
function getre(str, num) {<br> if (str === num) return "nice try";<br> var res = [</p><pre class="brush:php;toolbar:false">[/^\D+/g, /\D+$/g], // Remove leading/trailing non-digits [/^\D+|\D+$/g], // Remove both leading and trailing non-digits [/\D+/g], // Remove all non-digits [/\D.*/g], // Remove all non-digits from the end /.*\D/g, // Remove all non-digits from the start /^\D+|\D.*$/g, // Remove non-digits from both ends /.*\D(?=\d)|\D+$/g, // Remove non-digits followed by digits or from the end
];
for (var i = 0; i < res.length; i )
if (str.replace(res[i], "") === num) return 'num = str.replace(/' + res[i].source + '/g, "")';
return „keine Ahnung“;
}
function update() {
$ = function(x) { return document.getElementById(x) };
var re = getre($('str').value, $('num').value);
$('re').innerHTML = "Numex spricht : " re "
";
}
`:
Dieses Tool bietet eine Benutzeroberfläche, in der Sie Ihre Originalzeichenfolge und die gewünschte Nummer eingeben können Extrakt. Anschließend wird der zum Extrahieren der Nummer erforderliche JavaScript-Code angezeigt.
Das obige ist der detaillierte Inhalt vonWie extrahiere ich Zahlen aus Zeichenfolgen in JavaScript?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!