给定以下字符串:/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 。但我想知道是否有一种更简单的非集群方法可以使用正则表达式来实现这一点?我想我必须删除/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 - 替换第一次出现后的所有 x,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42336635/