我想在JavaScript的字符串中間拉出一個數字。在Ruby(我的主要語言),我這樣做:如何從JavaScript中的字符串中提取數字?
紅寶石:
name = "users[107][teacher_type]"
num = name.scan(/\d+/).first
但在JavaScript中我必須這樣做,這似乎有點笨重。
的JavaScript:
var name = "users[107][teacher_type]"
var regexp = new RegExp(/\d+/)
var num = regexp.exec(name)[0]
有沒有辦法拔出匹配的部分,而建設一個RegExp對象?即Ruby的String#掃描的單行等價物?
此外,作爲一個方面說明,由於這個字符串將始終具有相同的格式,我可能會使用.replace。這不是一個聰明的解決方案,但我又在JavaScript中遇到了問題。
在Ruby:
num = name.gsub(/users\[|\]\[teacher_type\]/,"")
但是當我嘗試這在JavaScript它不喜歡的或者|在正則表達式的中間():
在JavaScript:
//works
num = name.replace(/users\[/, "").replace(/\]\[teacher_type\]/,"")
//doesn't work
num = name.gsub(/users\[|\]\[teacher_type\]/,"")
任何人都可以設置我嗎?
在Ruby中,你會怎麼做'的名字[/ \ d + /]`。如果你只對第一場比賽感興趣,那麼`String#scan`是錯誤的工具。 – 2017-10-25 20:29:51