无法读取null的属性“1”。变量设置

时间:2014-03-07 09:32:39

标签: javascript jquery

如果没有匹配,则为变量赋值null,如果匹配,则将第二个匹配分配给变量。

这就是我的想法,但是当它返回null时,它仍会检查其余的代码是否为false。那么我得到一个Uncaught TypeError: Cannot read property '1' of null

我如何解决这一部分以使其工作而不是给我一个错误?

var matches = $("#search input").val().match(pattern);    
var id = [];
id["new"] = (typeof matches === null) ? null : matches[1]; // <--

2 个答案:

答案 0 :(得分:1)

typeof运算符总是返回一个永远不会=== null的字符串。

由于$("#search input").val().match(pattern)的结果在匹配时没有匹配且数组匹配时始终为null,因此null为假值,因此您可以这样做:

id["new"] = matches ? matches[1] :null;

甚至:

id["new"] = matches && matches[1];

答案 1 :(得分:0)

试试这个:

id["new"] = (matches == null) ? null : matches[1];
如果找不到匹配项,

.match()会返回null