javascript - 替换第一次出现后的所有 x

标签 javascript regex

给定以下字符串:/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"

它分三步完成工作:

  1. /repos/ 替换为空字符串
  2. 将所有 / 替换为 -
  3. 将第一个 - 替换为 /

关于javascript - 替换第一次出现后的所有 x,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42336635/

相关文章:

javascript - jquery - $(document).ready( 和 $(document).on ('ready page:load' 之间有什么区别

Javascript 正则表达式替换函数

regex - Perl 正则表达式匹配字符串中的 URI

mysql - 正则表达式:仅匹配单个字符(MySQL)?

regex - 根据 url/nginx 设置内容处置

javascript - 如何用JavaScript写入txt文件

javascript - 电子锻造与 react ?

javascript - 通过 javascript 在 dom 中重新定位广告横幅时可能出现的问题?

javascript - 如何在 select ng-options Angular 中组合多个对象属性

php - 将 StudlyCaps 字符串拆分为单词