替换字符的首次和最后一次出现

我需要一个正则表达式来将字符串{somestr}转换为:somestr ,但我只需要替换大括号的第一个和最后一个出现,因为如果在字符串中间出现任何事件 - 它不应该被删除。

到目前为止,我尝试过:

传入的字符串var path = '/claims/{id}'

var pathWithoutBraces = path.replace("{", ":").replace("}", "")

输出是/claims/:id ,这是预期的,但它仍然会取代整个字符串中的所有进一步发生


您可以使用以下内容替换第一个和最后一个{}

var s='/claims/{abc{de}}f}';

document.write(s.replace(/{(.*)}/,':$1'));

这应该只取代第一个和最后一个大括号:

str.replace(/({)(.*)(})/, ':$2');


如何: /({)([}w]+)(})/ ? 请参阅https://regex101.com/r/pW4fU7/2

这将要求并捕获一个打开和关闭的花括号,并且还会捕获单词字符(并关闭大括号)。 这是你的例子的一个片段:

var path = '/claims/{id}';
document.write(path.replace(/({)([}w]+)(})/,':$2'));
链接地址: http://www.djcxy.com/p/59513.html

上一篇: replace first and last occurrence of a character

下一篇: Regex pattern extract string between curly braces and exclude curly braces