替换字符的首次和最后一次出现
我需要一个正则表达式来将字符串{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