[英]Replace all x after first occurrence
给定以下字符串: /repos/facebook/react/native
。 我需要删除/ repos /,然后在第一个斜杠后的所有斜杠都必须是破折号。
因此,对于上面的示例,结果是: faceboook/react-native
。
其他示例:开始: /repos/google/angular/cli
结束: google/angular-cli
开始: /repos/aksonov/react/native/router/flux
结束: aksonov/react-native-router-flux
我从.replace('/repos/', '')
开始,然后开始做一个hacky split(by /
)[0] + map。 但是我想知道是否有使用regex进行聚集的更简单的方法? 我以为我必须删除/ repos /,所以问题是如何在第一个斜杠之后替换所有斜杠。
任何想法表示赞赏,谢谢
保持简单,您可以执行以下操作:
function repl(str) {
return str.replace('/repos/', '').replace(/\//g, '-').replace('-', '/')
}
然后将其称为:
repl('/repos/google/angular/cli')
//=> "google/angular-cli"
repl('/repos/aksonov/react/native/router/flux')
//=> "aksonov/react-native-router-flux"
它分三步完成工作:
/repos/
/
由-
-
/
我不是javascript向导,但是这种简单方法呢:
s = "/repos/aksonov/react/native/router/flux";
s = s.replace('/repos/', '');
bits = s.split('/');
final = bits[0]+'/'+bits.slice(1).join('-');
.replace(/\/repos\/(.*)\/(.*)/,"$1-$2");
这个怎么样:
const data = ['/repos/aksonov/react/native/router/flux', '/repos/google/angular/cli', '/repos/facebook/react/native'] const reducePath = path => path.replace(/\\/.*?\\//,'').replace(/\\//g, '-').replace(/-/, '/') for (let path of data){ console.log(`${path} -> ${reducePath(path)}`) }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.