【问题标题】:How to extract array of numbers from string in javascript如何从javascript中的字符串中提取数字数组
【发布时间】:2013-04-19 02:53:48
【问题描述】:

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

[stuff ids="7,80"]

字符串可以包含一到五组数字,用逗号分隔(每组有 1 个或多个数字),需要提取到数组中。

我试过了:

var input = '[stuff ids="7,80"]';
var matches = input.match(/ids="(\d*),(\d*)"/);

这会给我一个包含 7 和 80 的数组(我认为),但我该如何进一步处理,以便在超过两个(或少于两个)的情况下返回所有数字?

此外,这甚至是解决此问题的最佳方法吗?

感谢您的帮助!

【问题讨论】:

    标签: javascript regex arrays


    【解决方案1】:
    var numbers = '[stuff ids="7,80"]'.match(/\d+/g);
    

    \d+ 匹配任何连续的数字(即数字),g 修饰符告诉匹配所有

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

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

    【讨论】:

    • 这太棒了!只是一个挑剔,它不会拾取负号,即对于'[stuff ids="7,-80"]',它仍然会返回["7","80"]
    • 或十六进制数字:P 但谁在数。
    • @Vlad:是的,我记住了这一点,但通常 ID 是肯定的,所以我决定不要过于复杂
    • @zerkms 谢谢!!显然,我自己让这件事变得非常复杂。我也很欣赏正则表达式的解释。希望我早点问。 :-)
    猜你喜欢
    • 2012-04-17
    • 2011-10-25
    • 2017-07-20
    • 2012-01-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多