如何在Javascript中从较大的字符串中获取字符串?
我有以下格式的字符串:如何在Javascript中从较大的字符串中获取字符串?,javascript,regex,Javascript,Regex,我有以下格式的字符串: /users/john,/users/anna,/users/charles/something 我想获取用户名。因此,它要么是/users/后面的单词,要么是/users/后面的单词,然后是另一个/前面的单词 如何在javascript中做到这一点?匹配/users/,然后捕获组中的非斜杠,并提取该组: ['/users/john', “/users/anna”, “/users/charles/something”] .forEach(str=>{ console.
/users/john
,/users/anna
,/users/charles/something
我想获取用户名。因此,它要么是/users/
后面的单词,要么是/users/
后面的单词,然后是另一个/
前面的单词
如何在javascript中做到这一点?匹配
/users/
,然后捕获组中的非斜杠,并提取该组:
['/users/john',
“/users/anna”,
“/users/charles/something”]
.forEach(str=>{
console.log(
str.match(/\/users\/([^/]+)/)[1]
)
});代码>匹配/users/
,然后捕获组中的非斜杠,并提取该组:
['/users/john',
“/users/anna”,
“/users/charles/something”]
.forEach(str=>{
console.log(
str.match(/\/users\/([^/]+)/)[1]
)
});代码>尝试使用正则表达式替换为捕获组:
var输入='users/charles/something';
如果(/^users\/.*$/.test(输入)){
var username=input.replace(/^users\/([^\/]+).*/,“$1”);
console.log(用户名);
}
否则{
控制台日志(“不匹配”);
}
尝试使用正则表达式替换为捕获组:
var输入='users/charles/something';
如果(/^users\/.*$/.test(输入)){
var username=input.replace(/^users\/([^\/]+).*/,“$1”);
console.log(用户名);
}
否则{
控制台日志(“不匹配”);
}
您必须从/sign中拆分,然后获取正确的索引字符串。拆分(“/”[2]
就可以了。@Khay但这不会检查字符串是否与预期格式匹配。您必须从/sign中拆分,然后获取正确的索引字符串。拆分(“/”[2]
可以。@Khay但这不会检查字符串是否与预期格式匹配。为什么要按照CertainPerformance的建议进行替换而不是“匹配”?@HommerSmith他的性能在JavaScript问题上不确定,我不确定是否匹配
。为什么要按照CertainPerformance的建议进行替换而不是“匹配”?@HommerSmith他的表现在JavaScript问题上不确定,我不确定是否匹配
。你知道我为什么会出现这样的错误吗:没有无用的转义:不必要的转义字符:\/。
在我的编辑器中?哎呀,显然你不必在字符集中转义前斜杠。更改为[^/]
您知道我为什么会出现此错误:没有无用的转义:不必要的转义字符:\/.
在我的编辑器中?哎呀,显然您不必在这里的字符集中转义正斜杠。更改为[^/]