在斜杠之间替换单词,但跳过第一次出现的单词

时间:2018-11-18 11:42:04

标签: javascript regex replace

我一直在玩this online Regex tool,但是我没有任何进展。

我有多个字符串:

/a/b/c/
/x/z/
/y/

我试图用*代替斜线之间的单词,但是跳过第一个单词,以使输出看起来像这样:

/a/*/*/
/x/*/
/y/

2 个答案:

答案 0 :(得分:3)

一个选项是在正则表达式的开头对^进行否定超前查找(^与字符串的开头匹配,以确保以下匹配不会在开头出现),然后匹配/和单词字符,然后替换为/*

const repl = str => str.replace(/(?!^)\/\w+/g, '/*');
console.log(repl('/a/b/c/'));
console.log(repl('/x/z/'));
console.log(repl('/y/'));

答案 1 :(得分:1)

您还可以使用split().map()代替正则表达式

var newStr = str.split('/').map(function(v, i){
  return i<=1 || v=='' ? v : '*';
}).join('/');

function newStr(str){
  return str.split('/').map(function(v, i){
    return i<=1 || v=='' ? v : '*';
  }).join('/');
}
console.log(newStr('/a/b/c/'));
console.log(newStr('/x/z/'));
console.log(newStr('/y/'));