Javascript 检查数组项在js中是字符串还是xml节点

Javascript 检查数组项在js中是字符串还是xml节点,javascript,arrays,xml,internet-explorer-8,Javascript,Arrays,Xml,Internet Explorer 8,我有一个javascript数组。数组中的某些项是xml节点,某些项是字符串,如果是字符串,则始终是相同的字符串。我需要一个跨浏览器的解决方案来确定该项是否为xml节点,这将适用于从IE8到现代浏览器的所有内容。最初,我只是将项目与字符串进行比较,如下所示: var isNode = true; if (array[i] == "my string") { isNode = false; } 但是,如果数组项是xml节点,则这会在XP上的IE8中导致错误。所以我试了一下: var is

我有一个javascript数组。数组中的某些项是xml节点,某些项是字符串,如果是字符串,则始终是相同的字符串。我需要一个跨浏览器的解决方案来确定该项是否为xml节点,这将适用于从IE8到现代浏览器的所有内容。最初,我只是将项目与字符串进行比较,如下所示:

var isNode = true;
if (array[i] == "my string") {
    isNode = false;
}
但是,如果数组项是xml节点,则这会在XP上的IE8中导致错误。所以我试了一下:

var isNode = true;
try {
    var nodeName = array[i].context.tagName;
} catch (ex) {
    isNode = false;
}
这在IE8中有效,但在Chrome中isNode总是返回false


有更好的主意吗?

不完全确定,因为我在你的帖子中没有看到字符串,但正则表达式可能会在以下方面有所帮助:

(/([<].*[>])/gi).test('demo')              //returns false
(/([<].*[>])/gi).test('<node> </node>')    //returns true
(/([])/gi.test('demo')//返回false
(/([])/gi.test(“”)//返回true