我想用github链接之类的另一个词来代替file:///Downloads/project
:
const string = 'file:///Downloads/project/users/controllers/users/controller.js';
我尝试使用.reworld by world替换一个世界,但遇到一个问题,file:///Downloads/project
是一个动态值,可能会不时更改。
string.replace(/file\:\/\/Downloads\/project\/users\/controller.js/gi, 'https://gitlab.com')
因此,我想搜索单词project
,并用其他路径或单词向后替换该单词
答案 0 :(得分:1)
要获得预期的结果,请使用以下使用indexOf和substr的选项,最后使用gitlab url替换
const string = 'file:///Downloads/project/users/controllers/users/controller.js';
const index = string.indexOf('project')
console.log(string.replace(string.substr(0, index), 'https://gitlab.com/'))
答案 1 :(得分:1)
使用正则表达式,您可以匹配包含/project
的第一个组,并用https://gitlab.com
替换第一个带括号的捕获组。这里的p1
代表第一个带括号的捕获组,p2
代表第二个带括号的捕获组。
const str = 'file:///Downloads/project/users/controllers/users/controller.js';
const res = str.replace(/^(.|\/)+\w*project(.+)*/gi, function(match, p1, p2) {
return 'https://gitlab.com' + p2;
});
console.log(res);
答案 2 :(得分:0)
您不需要正则表达式
const string = 'file:///Downloads/project/users/controllers/users/controller.js',
yourValue = "file:///Downloads/project/",
res = string.replace(yourValue, "https://gitlab.com/")
console.log(res)
答案 3 :(得分:0)
'https://gitlab.com/' + string.substr(string.indexOf('project'))
首先在字符串中找到“项目”的位置
string.indexOf('project')
然后从该位置到字符串的末尾获取一个子字符串(substr直到没有第二个arg的末尾为止)
string.substring(indexOfProject)
然后用'+'组合起来。请注意,该网址以“ /”结尾,因为您的字符串将以“ p”开头。
'https://gitlab.com/' + extractedString