匹配字符串中的参数

Cla*_*raU 1 javascript regex

我有一个如下所示的字符串;

var x = "test/foo/4/bar/3"
Run Code Online (Sandbox Code Playgroud)

我有一个模式

var y = "test/foo/{id}/bar/{age}"
Run Code Online (Sandbox Code Playgroud)

是否可以通过正则表达式使用模式从变量"x"中提取数字4和3?

Dav*_*mas 6

我建议,如果字符串格式是可预测的格式,避免使用正则表达式:

var str = "test/foo/4/bar/3",
    parts = str.split('/'),
    id = parts[2],
    age = parts[4];
Run Code Online (Sandbox Code Playgroud)

JS小提琴演示.

但是,如果你认为你真的必须使用正则表达式(并使你的生活复杂化),那么有可能:

var str = "test/foo/4/bar/3",
    parts = str.split('/'),
    id = str.match(/\/(\d+)\//)[1],
    age = str.match(/\/(\d+)$/)[1];
console.log(id,age);
Run Code Online (Sandbox Code Playgroud)

JS小提琴演示.

参考文献: