Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在javascript中从字符串中提取数字数组_Javascript_Regex_Arrays - Fatal编程技术网

如何在javascript中从字符串中提取数字数组

如何在javascript中从字符串中提取数字数组,javascript,regex,arrays,Javascript,Regex,Arrays,使用javascript,我需要从这个字符串中提取数字: [stuff ids="7,80"] 字符串可以有一到五组数字,用逗号分隔(每组有一个或多个数字),需要提取到数组中 我试过: var input = '[stuff ids="7,80"]'; var matches = input.match(/ids="(\d*),(\d*)"/); 这将给我一个包含7和80的数组(我想),但我如何进一步处理这个问题,以便在有两个以上(或少于两个)的情况下返回所有数字 此外,这是最好的解决方法吗

使用javascript,我需要从这个字符串中提取数字:

[stuff ids="7,80"]
字符串可以有一到五组数字,用逗号分隔(每组有一个或多个数字),需要提取到数组中

我试过:

var input = '[stuff ids="7,80"]';
var matches = input.match(/ids="(\d*),(\d*)"/);
这将给我一个包含7和80的数组(我想),但我如何进一步处理这个问题,以便在有两个以上(或少于两个)的情况下返回所有数字

此外,这是最好的解决方法吗

谢谢你的帮助

var numbers = '[stuff ids="7,80"]'.match(/\d+/g);
\d+
匹配任何连续数字(即数字),并且
g
修饰符指示匹配所有数字

PS:如果您需要匹配负数:

var numbers = '[stuff ids="-7,80"]'.match(/-?\d+/g);

这太棒了!只是吹毛求疵,它不会拾取负号,例如,对于
'[stuff id=“7,-80”]
它仍然会返回
[“7”,“80”]
。或者十六进制数:P,但谁在计数。@Vlad:yep,我记住了这一点,但通常ID是正数,所以我决定不这样做overcomplicate@zerkms非常感谢。很明显,我自己把事情弄得非常复杂。我也很感激正则表达式的解释。但愿我早点问。:-)