Chcę wyciągnąć liczbę poza środek ciągu w JavaScript. W Ruby (moim głównym językiem) Chciałbym to zrobić:Jak wyciągnąć liczbę z ciągu znaków w JavaScript?
Ruby:
name = "users[107][teacher_type]"
num = name.scan(/\d+/).first
Ale w JavaScript Mam do tego, co wydaje się nieco niezgrabne zrobić.
JavaScript:
var name = "users[107][teacher_type]"
var regexp = new RegExp(/\d+/)
var num = regexp.exec(name)[0]
Czy istnieje sposób, aby wyciągnąć części pasujące bez budowania obiektu RegExp? To znaczy. ekwiwalent jednej linijki skanowania # Stringa?
Również, jak na marginesie, ponieważ ten ciąg będzie zawsze miał ten sam format, mógłbym potencjalnie zrobić to za pomocą .replace. To nie jest tak sprytne rozwiązanie, ale znowu mam problemy z JavaScriptem.
W Ruby:
num = name.gsub(/users\[|\]\[teacher_type\]/,"")
Ale gdy próbuję to w JavaScript to nie podoba lub (|) w środku regex:
W javascript:
//works
num = name.replace(/users\[/, "").replace(/\]\[teacher_type\]/,"")
//doesn't work
num = name.gsub(/users\[|\]\[teacher_type\]/,"")
Czy ktoś może mnie ustawić prosto?
W Ruby byś zrobił 'nazwa [/ \ d + /]'. "Ciąg # skanowania" jest niewłaściwym narzędziem, jeśli interesuje Cię tylko pierwszy mecz. –