从正则表达式制作数组
Posted
技术标签:
【中文标题】从正则表达式制作数组【英文标题】:Make array from regex 【发布时间】:2011-03-26 02:16:46 【问题描述】:我有这个字符串:
example1example2example3
这是查找这些anything in it
的正则表达式:
/\.*?\/g
现在我想知道如何将它们放在一个数组中,这样我就可以做一个for in
语句。
我想要一个类似array("example1","example2","example3");
的数组?
【问题讨论】:
如果你有一个实际的数组,你最好使用一个简单的for
循环而不是for...in
,这可能会给你比你讨价还价的更多:所有扩展将列出到Array
的原型,以及数组中的项目。
您不应该使用for-in
迭代数组。最好使用 C 风格的 for
循环。
【参考方案1】:
var matches = 'example1example2example3'.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 而不是直接的文档,因为他们有示例和“立即尝试”功能。以上是关于从正则表达式制作数组的主要内容,如果未能解决你的问题,请参考以下文章