我正在努力尝试创建一个非常简单的 RegExp。 (可能缺少几个小时的 sleep )。
我刚刚输入了这个字符串:/users/10/contracts/1 我的正则表达式是这个:/users/(\w+)/contracts/(\w+)/
我想用这种字符串替换所有匹配项:/users/{variable1}/contracts/{variable2}
这是我的完整源代码:
var customRegex = "/users/(\\w+)/contracts/(\\w+)";
var i =0;
var finalUrl = "/users/1234/contracts/5678".replace(new RegExp(customRegex, 'gi'), function myFunction(x, y){
return "{variable" + i + "}";
});
console.log(finalUrl);
你能帮帮我吗?
祝你有个愉快的一天,感谢你的帮助。
最佳答案
replace-function 在整个替换过程中只调用一次。 您正在使用 2 个匹配器,因此您还会获得 2 个匹配项作为回调函数中的参数。
var customRegex = "/users/(\\w+)/contracts/(\\w+)";
var finalUrl = "/users/1234/contracts/5678".replace(new RegExp(customRegex, 'gi'), function myFunction(wholeString, p1, p2){
return wholeString.replace(p1, "{variable1}").replace(p2, "{variable2}");
});
console.log(finalUrl);
关于javascript - 简单的 JS 正则表达式替换。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34700385/