匹配返回串而不是对象
-
21-09-2019 - |
题
这个简单的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]]
内部财产,该财产是有价值的指示 种类 的对象,一个更加安全的方式来检测,如果对象是一个数组,或者没有。
不隶属于 StackOverflow