Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 未定义是否导致或操作中的下一项?_Jquery_Regex_Match_String Length - Fatal编程技术网

Jquery 未定义是否导致或操作中的下一项?

Jquery 未定义是否导致或操作中的下一项?,jquery,regex,match,string-length,Jquery,Regex,Match,String Length,我一直认为获取未定义值的一个退路是添加一个0作为第二个元素的析取运算符。也许一个例子更清楚: 这是一个例子 我希望上面返回的时间a是在textarea中找到的,如果找不到它(并且长度返回未定义),则跳到OR语句的第二部分,即0。但正如你所见,这是行不通的。控制台返回: 未捕获的TypeError:无法读取null的属性“length” 因此,长度不是未定义的,而是抛出一个错误。我怎样才能最好地处理这件事。如果没有匹配项,如何使其返回0?如果没有找到匹配项,则返回null。因此,当您在文本区域中键

我一直认为获取未定义值的一个退路是添加一个0作为第二个元素的析取运算符。也许一个例子更清楚:

这是一个例子

我希望上面返回的时间
a
是在textarea中找到的,如果找不到它(并且长度返回未定义),则跳到OR语句的第二部分,即
0
。但正如你所见,这是行不通的。控制台返回:

未捕获的TypeError:无法读取null的属性“length”

因此,长度不是未定义的,而是抛出一个错误。我怎样才能最好地处理这件事。如果没有匹配项,如何使其返回
0

如果没有找到匹配项,则返回
null
。因此,当您在
文本区域中键入不包含
a
的内容时,
match()
将返回
null
。并且
null。长度
为错误

返回值

包含匹配结果的数组,如果没有匹配项,则为null

演示

$(“textarea”)。在(“输入”,函数()上{
console.log($((“textarea”).val().match(/a/g)| |[]).length);
});

好吧,如果
.match
的结果为
null
,不要尝试获取其长度

var matches = $("textarea").val().match(/a/g);
var nummatches = matches && matches.length || 0;

您现在可以删除
|| 0
“”)。长度
比创建新的空数组更有效吗?
| | 0
部分现在是多余的。谢谢Tushar。我想知道@nnnnnn的评论是否属实。在我看来他是对的。@BramVanroy nnnnnn我还补充了这一点
var matches = $("textarea").val().match(/a/g);
var nummatches = matches && matches.length || 0;