Javascript 如何提取两个字符之间的字符串?

Javascript 如何提取两个字符之间的字符串?,javascript,regex,Javascript,Regex,这些是我的字符串: there_is_a_string_here_1_480@1111111 there_is_a_string_here_1_360@1111111 there_is_a_string_here_1_180@1111111 我想做的是从这些字符串中提取180、360和480 我尝试了这个正则表达式。(.*),但是没有机会。你几乎就要得到它了 _(\d{3})@ 您需要对数字进行匹配,否则字符串也会因为另一个下划线而被选中 当然,你的对手将出现在\1中,你几乎成功了 _(\d

这些是我的字符串:

there_is_a_string_here_1_480@1111111
there_is_a_string_here_1_360@1111111
there_is_a_string_here_1_180@1111111
我想做的是从这些字符串中提取180、360和480

我尝试了这个正则表达式
。(.*)
,但是没有机会。

你几乎就要得到它了

_(\d{3})@
您需要对数字进行匹配,否则字符串也会因为另一个下划线而被选中

当然,你的对手将出现在
\1

中,你几乎成功了

_(\d{3})@
您需要对数字进行匹配,否则字符串也会因为另一个下划线而被选中

当然,您的匹配将出现在
\1

试试这个

var str=“这里有一个字符串”_480@1111111";
var matches=str.match(/\ud+@/).map(函数(值){返回值.substring(1,value.length-1);});
document.body.innerHTML+=JSON.stringify(匹配项,0,4)试试这个

var str=“这里有一个字符串”_480@1111111";
var matches=str.match(/\ud+@/).map(函数(值){返回值.substring(1,value.length-1);});

document.body.innerHTML+=JSON.stringify(匹配项,0,4)您只需要捕获组:

var str='这里有一个字符串\u\u\u\u 1_180@1111111';
var substr=str.match(/(\d*)@/);
if(substr){
substr=substr[1];
console.log(substr);
}

//输出180
您只需要捕获组:

var str='这里有一个字符串\u\u\u\u 1_180@1111111';
var substr=str.match(/(\d*)@/);
if(substr){
substr=substr[1];
console.log(substr);
}
//输出180
尝试以下操作:

(?试试这个:


(?可能是这样:
\ud*)@
-它总是一个数字字符串吗?是的。但这一个也包括u和@字符。如果你也可以去掉它们,为什么不发布一个答案呢?:)可能是这样:
\ud*)@
-它总是一个数字字符串吗?是的。但是这个字符串也包括u和@字符。如果你也可以去掉它们,为什么不发布一个答案呢?:)如果不匹配(无法读取
null
的属性1),它也会抛出一个
类型错误。如果怀疑字符串是否包含子字符串,请参阅编辑,只需先检查匹配项,然后选择捕获组。如果没有匹配项(无法读取
null
的属性1),它也会抛出
TypeError
。请参阅编辑-如果怀疑字符串将包含子字符串,只需先检查匹配项,然后选择捕获组。