正则表达式Javascript-将:替换为{}

正则表达式Javascript-将:替换为{},javascript,regex,Javascript,Regex,我正在寻找一种通用的方法来替换:{},因为我正在处理不同的URL,但是我需要用{}替换所有URL 例如: 用户/:用户id/信用卡 我想用{user\u id}替换:user\u id。 我该怎么做 谢谢。您可以查找冒号和下面的字母以及下划线,并用花括号和组的值替换这些值 因为“g”标志意味着正则表达式的全局性,所以它将替换所有找到的元素 变量字符串='users/:user_id/信用卡', replaced=string.replace/:[a-z_3;]+/gi,{$1}; 控制台被更换

我正在寻找一种通用的方法来替换:{},因为我正在处理不同的URL,但是我需要用{}替换所有URL

例如: 用户/:用户id/信用卡

我想用{user\u id}替换:user\u id。 我该怎么做


谢谢。

您可以查找冒号和下面的字母以及下划线,并用花括号和组的值替换这些值

因为“g”标志意味着正则表达式的全局性,所以它将替换所有找到的元素

变量字符串='users/:user_id/信用卡', replaced=string.replace/:[a-z_3;]+/gi,{$1};
控制台被更换 如果我了解你想要的模式, 以“:”开头+变量名 在“/”或行尾之前结束

比我更愿意:

const regex = /:([^\/]+)(\/|$)/gm;
const str = `:user_id/users/:user_id/creditcards/:user_id`;
const subst = `{$1}$2`;

// The substituted value will be contained in the result variable
const result = str.replace(regex, subst);

它捕捉到模式的开始、中间和结尾

是否将所有遭遇都替换为:?如果url中有多个参数,则正则表达式的g标志表示全局。所以,是的,它是。请张贴作为答案,这样我将能够接受它。