我有一个看起来像这样的字符串
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+)/);
答案 0 :(得分:2)
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。
答案 1 :(得分:1)
matches
的值实际上是[ "1.20", "20" ]
(这是一个数组)。如果你打印它,它将被转换为一个字符串,因此1.20,20
。
String.match
返回null
或匹配数组,其中第一个索引是完全匹配的部分,然后是您想要的任何部分。所以你想要的价值是matches[0]
。
答案 2 :(得分:1)
尝试以下
var nb = query.match(/\d\.\d+/)[0]; // "1.20"
.
,因为它代表任何角色。