如何使用javascript的正则表达式匹配第二个数字?

时间:2012-08-10 04:03:42

标签: javascript regex

这是我的字符串。

var id = "timesheet_entries_attributes_0_entry_overtimes_attributes_0_code_id"

问题是我想用另一个数字替换最后一个零。

零的位置总是在变化。但是字符串中只有两个零。他们不能在一起。

如:

var num =“2”;     ( “timesheet_entries_attributes_0_entry_overtimes_attributes_0_code_id”)代替(/ \ d /,NUM);

但它总是取代第一个零。

SOS!

3 个答案:

答案 0 :(得分:1)

id.replace (/(\d+)(?=\D+$)/, '2')

此版本替换字符串中的最后一个数字。

答案 1 :(得分:0)

另一种解决方法:

var id = "timesheet_entries_attributes_0_entry_overtimes_attributes_0_code_id",
    matchIndex = 1,
    replace = 300,
    count = -1;

id = id.replace(/\d+/g, function(number) {
    count++;
    return (count == matchIndex) ? replace : number;
});

demo

答案 2 :(得分:0)

var id = "timesheet_entries_attributes_0_entry_overtimes_attributes_0_code_id";
var num_replace = 5;
id = id.replace(/(\d+.*)\d+/, "$1"+num_replace);