24 Stimmen

Parsing ein Int aus einem String in Javascript

In Javascript, was ist der beste Weg, um eine INT aus einer Zeichenfolge, die mit einem Buchstaben beginnt (wie "test[123]") zu analysieren? Ich brauche etwas, das für das folgende Beispiel funktionieren wird.

Mein JS:

$(document).ready(function() {

    $(':input').change( function() {
        id = parseInt($(this).attr("id"));  //fails for the data below
        alert(id);
    });
}

Mein generiertes HTML:

<select id="attribute[123]">
<!-- various options -->
</select>
<select id="attribute[456]">
<!-- various options -->
</select>

Ich danke Ihnen!

58voto

Gumbo Punkte 617646

Sie könnten einen regulären Ausdruck verwenden, um die Nummer zu finden:

$(this).attr("id").match(/\d+/)

24voto

Joel Coehoorn Punkte 377088
parseInt(input.replace(/[^0-9-]/,""),10)

1voto

Logan Serman Punkte 28407

Wahrscheinlich filtern Sie die Zeichenfolge einfach mit .replace() heraus. Wenn es eine andere Möglichkeit gibt, dann ist sie mir nicht bekannt:

parseInt("attribute[123]".replace("attribute[", "").replace("]", "")));

Sie könnten wahrscheinlich einige Regex zu setzen, dass in nur einem .replace(), aber ich bin nicht gut mit Regex, so dass ich gerade tat es zweimal.

Testen Sie dies in Ihrem Browser mit

javascript:alert(parseInt("attribute[123]".replace("attribute[", "").replace("]", "")));

Sollte die 123.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X