帮助使用正则表达式来捕获数字

时间:2011-09-07 11:23:36

标签: javascript jquery regex

我需要从以下字符串中捕获价格:

Price: 30

我需要30,所以我想我会使用以下正则表达式:

([0-9]+)$

这适用于Rubular,但在我的javascript中尝试时会返回null

console.log(values[1]);
// Price: 100
var price = values[1].match('/([0-9]+)$/g');
// null

有什么想法吗?提前致谢

5 个答案:

答案 0 :(得分:4)

试试这个:

var price = values[1].match(/([0-9]+)$/g);

JavaScript支持RegExp文字,您不需要引号和分隔符 顺便提一句,.match(/\d+$/)的行为应该相同。

另请参阅:MDN - Creating a Regular Expression

请记住,有更简单的方法来获取此数据。例如:

var tokens = values[1].split(': ');
var price = tokens[1];

您也可以按单个空格拆分,可能还想添加一些验证。

答案 1 :(得分:2)

你为什么不用这个?

var matches = a.match(/\d+/);

然后你可以消耗第一个元素(或最后一个)

我的建议是尽量避免使用$,因为最后可能会有空格。

答案 2 :(得分:2)

这也有效:

var price = values[1].match('([0-9]+)$');

答案 3 :(得分:1)

看来你逃过了开放式的,因此正则表达式正在寻找“(90”。

答案 4 :(得分:1)

您无需在JavaScript中为正则表达式添加引号。