Heim >Web-Frontend >js-Tutorial >Wie extrahiere ich Zahlen aus Zeichenfolgen in JavaScript?

Wie extrahiere ich Zahlen aus Zeichenfolgen in JavaScript?

DDD
DDDOriginal
2024-12-06 10:45:11741Durchsuche

How to Extract Numbers from Strings in JavaScript?

Zahlen aus Zeichenfolgen in JavaScript extrahieren: Eine umfassende Anleitung

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn