【问题标题】:Make array from regex从正则表达式制作数组
【发布时间】:2011-03-26 02:16:46
【问题描述】:

我有这个字符串:

{example1}{example2}{example3}

这是查找这些{anything in it}的正则表达式:

/\{.*?\}/g

现在我想知道如何将它们放在一个数组中,这样我就可以做一个for in 语句。

我想要一个类似array("{example1}","{example2}","{example3}"); 的数组?

【问题讨论】:

  • 如果你有一个实际的数组,你最好使用一个简单的for 循环而不是for...in,这可能会给你比你讨价还价的更多:所有扩展将列出到Array 的原型,以及数组中的项目。
  • 您不应该使用for-in 迭代数组。最好使用 C 风格的 for 循环。

标签: javascript regex arrays


【解决方案1】:
var matches = '{example1}{example2}{example3}'.match(/\{.*?\}/g);
// ['{example1}', '{example2}', '{example3}']

See it here.

另外,您可能应该使用for 循环来遍历数组。 for in 会产生副作用,比如收集更多的东西来迭代原型链。你可以使用hasOwnProperty(),但for 循环就简单多了。

为了提高性能,您还可以在将length 属性包含在for 条件中之前对其进行缓存。

【讨论】:

    【解决方案2】:
    your_array = string.match( pattern )
    

    http://www.w3schools.com/jsref/jsref_match.asp

    【讨论】:

    • 这会产生一个像array("{example1}","{example2}","{example3}");这样的数组吗?
    • 他是个初学者,我想你不会通过发布那些函数签名来帮助他;)
    • @zolex 是的。我喜欢至少链接到 w3schools 而不是直接的文档,因为他们有示例和“立即尝试”功能。
    猜你喜欢
    • 2018-03-21
    • 2011-10-30
    • 1970-01-01
    • 1970-01-01
    • 2022-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多