如何在 JavaScript 中查找字符串是否以开头[
和结尾?]
var str = '[["a" , "b"]]';
有什么方法可以识别上面的字符串是否是数组的 typeof 数组?
如何在 JavaScript 中查找字符串是否以开头[
和结尾?]
var str = '[["a" , "b"]]';
有什么方法可以识别上面的字符串是否是数组的 typeof 数组?
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
。
要确定您的对象是否为数组,您可以尝试以下操作:
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!");
}
}