Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 第一次出现后替换所有x_Javascript_Regex - Fatal编程技术网

Javascript 第一次出现后替换所有x

Javascript 第一次出现后替换所有x,javascript,regex,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本机路由器流量 我从.replace(“/re

给定以下字符串:
/repos/facebook/react/native
。 我需要删除/repos/,然后第一个斜杠后面的所有斜杠都需要是破折号

因此,对于上面的示例,结果是:
faceboook/react native

其他例子: 开始:
/repos/google/angular/cli
结束:
google/angular cli

开始:
/repos/aksonov/react/native/router/flux
结束:
aksonov/react本机路由器流量

我从
.replace(“/repos/”,“)
开始,然后开始做一个hacky拆分(通过
/
)[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"
它通过3个步骤完成工作:

  • 用空字符串替换
    /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"
    
    它通过3个步骤完成工作:

  • 用空字符串替换
    /repos/
  • 将所有
    /
    替换为
    -
  • 将第一个
    -
    替换为
    /

  • 我不是javascript向导,但是这个简单的方法呢:

    s = "/repos/aksonov/react/native/router/flux";
    s = s.replace('/repos/', '');
    bits = s.split('/');
    final = bits[0]+'/'+bits.slice(1).join('-');
    

    我不是javascript向导,但是这个简单的方法呢:

    s = "/repos/aksonov/react/native/router/flux";
    s = s.replace('/repos/', '');
    bits = s.split('/');
    final = bits[0]+'/'+bits.slice(1).join('-');
    
    它起作用了

    它在工作

    这个怎么样:

    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(让数据的路径){
    log(`${path}->${reducePath(path)}`)
    }
    这个怎么样:

    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(让数据的路径){
    log(`${path}->${reducePath(path)}`)
    }