我有遵循以下格式的字符串:
/users/john
,/users/anna
,/users/charles/something
我想获取用户名。因此,它要么是/users/
之后的单词,要么是/users/
之后且另一个/
之前的单词。
如何在javascript中做到这一点?
答案 0 :(得分:2)
匹配/users/
,然后捕获组中的非斜杠,然后提取该组:
['/users/john',
'/users/anna',
'/users/charles/something']
.forEach(str => {
console.log(
str.match(/\/users\/([^/]+)/)[1]
)
});
答案 1 :(得分:0)
尝试使用正则表达式替换为捕获组:
var input = 'users/charles/something';
if (/^users\/.*$/.test(input)) {
var username = input.replace(/^users\/([^\/]+).*/, "$1");
console.log(username);
}
else {
console.log("no match");
}