Ich habe eine Zeichenfolge in Javascript wie "# box2" und ich möchte nur die "2" daraus.
Versucht:
var thestring = $(this).attr('href');
var thenum = thestring.replace( /(^.+)(\w\d+\w)(.+$)/i,'$2');
alert(thenum);
In der Warnung wird immer noch # box2 zurückgegeben. Wie kann ich es zum Laufen bringen?
Es muss für jede am Ende angebrachte Längennummer geeignet sein.
javascript
string
numbers
user1022585
quelle
quelle
Antworten:
Für dieses spezielle Beispiel
im allgemeinen Fall:
Da diese Antwort aus irgendeinem Grund an Popularität gewonnen hat, gibt es hier einen Bonus: den Regex-Generator.
quelle
"#box2_col3".replace( /^\D+/g, '')
hätte zeigen sollen2
, nicht2_col3
.#box2_col3
in der Frage.#box2_col3
. Beachten Sie jedoch das verwendete Regex-OP (\w)(.+$)
), das deutlich anzeigt, dass nach der Nummer noch andere Zeichen stehen.replace
mit führenden Zahlen arbeiten, indem Sie: verwendentheString.replace(/^.*\D+/g, '');
, aber die Lösung von shiplu.mokadd.im ist besser.Sie sollten Folgendes versuchen:
Ergebnis
quelle
parseInt(txt.match(/\d/g).join(''), 10)
" $ 20.0 ".match(/\d/g).join('')
=> "200" (nur sagen)Ich denke, dieser reguläre Ausdruck wird Ihrem Zweck dienen:
Wo
txt
ist deine Schnur?Es reißt im Grunde alles ab, was keine Ziffer ist.
Ich denke, Sie können das Gleiche auch damit erreichen:
quelle
/[^0-9]/g
+1 zur besseren Lesbarkeit. Wird auch mit den meisten Antworten hier verwendet: stackoverflow.com/q/1862130/1066234Versuchen Sie Folgendes:
string.replace(/[^0-9]/g, '');
Dadurch werden alle nichtstelligen Zeichen gelöscht, wobei nur Ziffern in der Zeichenfolge verbleibenquelle
/[^0-9]/g
durch ersetzt werden kann/[^\d]/g
.Match-Funktion verwenden.
jsfiddle
quelle
Versuchte alle oben genannten Kombinationen mit diesem Code und brachte es zum Laufen, war die einzige, die an dieser Zeichenfolge funktionierte ->
(12) 3456-7890
Ergebnis:
"1234567890"
Obs: Ich weiß, dass eine solche Zeichenfolge nicht auf dem attr steht, aber was auch immer, die Lösung ist besser, weil sie vollständiger ist.
quelle
str.match(/\d+/g).map(Number)
es wird ein Array zurückgebenUnd dies ist ein Ausschnitt, der Preise mit Währung und Formatierung extrahiert:
quelle
Sie können eine großartige parseInt-Methode verwenden
Die führenden Ziffern werden in eine Zahl umgewandelt
quelle
Für eine Zeichenfolge wie
#box2
sollte dies funktionieren:jsFiddle:
quelle
Sie können reguläre Ausdrücke verwenden.
Das wird 2 alarmieren.
quelle
Wie Sie mit regulären Ausdrücken Zahlen aus einem String abrufen, zum Beispiel:
das Ergebnis von
myString
ist "24
"Ein Beispiel für diesen laufenden Code finden Sie hier: http://ideone.com/iOCf5G
quelle
Sie können die Unterstrich-Zeichenfolgenbibliothek wie folgt verwenden
Ergebnis ist: 1
Siehe: https://github.com/epeli/underscore.string
DEMO:
http://jsfiddle.net/abdennour/Vyqtt/
HTML-Code:
JS-Code:
Wenn Sie das folgende Suffix haben:
Sie können die nächste Demo verwenden:
http://jsfiddle.net/abdennour/Vyqtt/1/
quelle
Hier ist eine Lösung. das prüft auf keine Daten
quelle
Verwenden Sie diesen einzeiligen Code, um die erste Zahl in einer Zeichenfolge zu erhalten, ohne Fehler zu erhalten:
quelle
Bitte überprüfen Sie unten JavaScripts, dort können Sie nur Nummer bekommen
Ausgabe :
1234567789
quelle
Sie können Zahlen mit einem Regex-Ausdruck aus einer Zeichenfolge extrahieren:
Ausgabe: 25933473
quelle
quelle
Diese Antwort wird den größten Teil des Szenarios abdecken. Ich kann diese Situation überwinden, wenn der Benutzer versucht, die Telefonnummer zu kopieren und einzufügen
Erläuterung:
join konvertiert und verkettet diese Array-Daten in eine einzelne Zeichenfolge
quelle
}}
Sie können es so machen und dann die Funktion mit Parametern aufrufen, wo Sie sie brauchen.
quelle
Sie können eine solche Funktion ausführen
quelle