Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.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
Javascript 如果找不到Regexp.match.length,则返回NULL_Javascript_Regex - Fatal编程技术网

Javascript 如果找不到Regexp.match.length,则返回NULL

Javascript 如果找不到Regexp.match.length,则返回NULL,javascript,regex,Javascript,Regex,我有一个JS regexp var t1 = str.match(/\[h1\]/g).length; 如果str包含单词[h1]则工作正常,否则显示错误 如何解决这个问题?你可以分两步做,先测试一下,然后再计算长度 var t1 = 0; var string = str.match(/\[h1\]/g); if (string){ t1 = string.length; } 应该是这样的。你还没有发现问题所在 如果要根据str是否包含“[h1]”来执行操作,请尝试以下操作: var

我有一个JS regexp

var t1 = str.match(/\[h1\]/g).length;
如果
str
包含单词
[h1]
则工作正常,否则显示错误

如何解决这个问题?

你可以分两步做,先测试一下,然后再计算长度

var t1 = 0;
var string = str.match(/\[h1\]/g);
if (string){
   t1 = string.length;
}

应该是这样的。你还没有发现问题所在

如果要根据
str
是否包含“[h1]”来执行操作,请尝试以下操作:

var t1;
var strmatch = str.match((/\[h1\]/g);
if (strmatch !== null) {
    t1 = strmatch.length;
}

哦!我不得不删除我的答案,因为我太爱你了;)它起作用了,请您解释一下这段代码的实际功能。
|【】
?此解决方案利用了OR运算符的行为;OR表达式将计算为计算结果为
true
(从左到右)的第一个子表达式,也称为短路计算。在这种情况下,当匹配返回
null
时,我们得到的是空数组,因为它的计算结果为true。如果可以,我会再单击十次!如果需要获取匹配项或为空,请使用var match=(str.match(/[h1]/g)| |['');您正在覆盖STR:(尽管它可以被备份:)
var t1;
var strmatch = str.match((/\[h1\]/g);
if (strmatch !== null) {
    t1 = strmatch.length;
}