Ich möchte eine Nummer aus der Mitte einer Zeichenfolge in JavaScript ziehen. In Ruby (meine Hauptsprache) Ich würde dies tun:Wie kann man in JavaScript eine Zahl aus einer Zeichenkette ziehen?
Rubin:
name = "users[107][teacher_type]"
num = name.scan(/\d+/).first
Aber in JavaScript Ich habe, dies zu tun, was ein bisschen klobig zu sein scheint.
JavaScript:
var name = "users[107][teacher_type]"
var regexp = new RegExp(/\d+/)
var num = regexp.exec(name)[0]
Gibt es Weg, um die passenden Teile zu ziehen, ohne ein RegExp-Objekt zu bauen? I.e. ein One-Liner-Äquivalent von Ruby's String # Scan?
Auch als Randnotiz, da diese Zeichenfolge immer das gleiche Format haben, könnte ich es möglicherweise mit .replace tun. Das ist keine so clevere Lösung, aber ich habe wieder Probleme mit JavaScript.
In Ruby:
num = name.gsub(/users\[|\]\[teacher_type\]/,"")
Aber wenn ich dies in JavaScript versuchen, funktioniert es nicht wie die oder (|) in der Mitte der Regex:
In JavaScript:
//works
num = name.replace(/users\[/, "").replace(/\]\[teacher_type\]/,"")
//doesn't work
num = name.gsub(/users\[|\]\[teacher_type\]/,"")
Kann mich jemand gerade setzen?
In Ruby würden Sie tun 'Name [/ \ d + /]'. 'String # scan' ist das falsche Werkzeug, wenn Sie nur am ersten Spiel interessiert sind. –