这个简单的regex匹配返回串而不是一个目在每一浏览器,但最新的火狐...

        text = "language. Filename: My Old School Yard.avi. File description: File size: 701.54 MB. View on Megavideo. Enter this, here:"
    name = text.match(/(Filename:)(.*) File /);
    alert(typeof(name));

我知道这匹配功能是想要返回的一个目(Array)。有没有人碰到这个问题?

有帮助吗?

解决方案

RegExp match 方法不会返回一个阵列,但阵列在JavaScript是简单地对象,从继承 Array.prototype, ,例如:

var array = "foo".match(/foo/); // or [];,  or new Array();

typeof array; // "object"
array instanceof Array; // true
Object.prototype.toString.call(array); // "[object Array]"

typeof 操作员将返回 "object" 因为它不能区分的一个普通的对象和一阵列。

在第二行我用的 instanceof 操作者证明对象实际上是一个数组,但是这种操作者已经 已知的问题 工作时在交叉框架的环境。

在第三行,我用的 Object.prototype.toString 方法,该方法返回一串,其中包含的 [[Class]] 内部财产,该财产是有价值的指示 种类 的对象,一个更加安全的方式来检测,如果对象是一个数组,或者没有。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top