我有一個字符串,它看起來像這樣提取分數從字符串
Hey this is my 1.20 string
我想只是從中提取1.20
。
這樣做的最好方法是什麼?
我已經試過這樣的事情,但我得到的1.20,20
價值,而不是僅僅1.20
var query = $(".query_time").html();
var matches = query.match(/\d.(\d+)/);
我有一個字符串,它看起來像這樣提取分數從字符串
Hey this is my 1.20 string
我想只是從中提取1.20
。
這樣做的最好方法是什麼?
我已經試過這樣的事情,但我得到的1.20,20
價值,而不是僅僅1.20
var query = $(".query_time").html();
var matches = query.match(/\d.(\d+)/);
的the match function結果是一個數組,而不是字符串。所以,簡單地採取
var nb = query.match(/\d.(\d+)/)[0];
順便說一句,如果你想擁有更精確的匹配,你也應該逃脫點:
var nb = query.match(/\d\.(\d+)/)[0];
或者這個,如果你想接受逗號(取決於語言):
var nb = query.match(/\d[\.,](\d+)/)[0];
但確切的正則表達式將根據您的具體需求,當然並匹配任何數字(科學記數法?)我建議你看看at more complex regex。
matches
的值實際上是[ "1.20", "20" ]
(這是一個數組)。如果您打印它,它將轉換爲一個字符串,因此1.20,20
。
String.match
返回null
或一個匹配數組,其中第一個索引是完全匹配的部分,然後是您想要的任何部分。所以你想要的價值是matches[0]
。
它應該是匹配[0] - 返回的數組是從0開始的。 – AmericanUmlaut
啊,我明白了,我以爲他只想要數字的小數部分。 – Halcyon
這不是你問什麼,但我認爲你有在您的正則表達式中的錯誤。 「」匹配除空格之外的所有字符,因此您最終會將「1個人和2個gals」等匹配爲「1個人和2個」。我也會假設你想要小數點是可選的,不是?那麼它應該是「/\d\.?((dd)/」 – AmericanUmlaut