我一直在玩this online Regex tool,但是我没有任何进展。
我有多个字符串:
/a/b/c/
/x/z/
/y/
我试图用*
代替斜线之间的单词,但是跳过第一个单词,以使输出看起来像这样:
/a/*/*/
/x/*/
/y/
答案 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/'));