0

如何在 JavaScript 中查找字符串是否以开头[和结尾?]

var str = '[["a" , "b"]]';

有什么方法可以识别上面的字符串是否是数组的 typeof 数组?

4

2 回答 2

0
var str = '[["a" , "b"]]';

str.match(/^\[.*\]$/);

匹配以 a 开头 ( ^) 并以 a[结尾$的字符串]。由于方括号是控制字符,因此您必须对其进行转义。在两者之间,可以有任意数量的字符.*

对于您想要做的事情,正则表达式不适合。取而代之的是,解析字符串:

try{
    var obj = JSON.parse(str);
    alert(typeof obj);
} catch (e) {
   alert("No valid JSON!");
}

Nowobj是一个真正的 JavaScript 对象,您可以在其中调用typeof

于 2012-10-02T09:31:44.800 回答
0

要确定您的对象是否为数组,您可以尝试以下操作:

if (str.match(/^\[.*\]$/)) {
    var test = JSON.parse(str);
    // Note, that you COULD use 'eval' here, but JSON.parse is the better solution.
    // Check out this post: http://24ways.org/2005/dont-be-eval

    if (test.constructor == Array) {
        alert("I'm an array!");
    }
}
于 2012-10-02T09:40:37.957 回答