如果未找到,则Regex.match.length返回NULL

时间:2011-07-16 03:06:38

标签: javascript

我有一个JS正则表达式。

var t1 = str.match(/\[h1\]/g).length;

如果str包含单词[h1],则可以正常使用,但会显示错误! 如何解决问题?

3 个答案:

答案 0 :(得分:30)

var t1 = (str.match(/\[h1\]/g)||[]).length;

答案 1 :(得分:2)

你是如何分两步完成的,在你获得长度之前先测试它。

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

答案 2 :(得分:1)

这就是它的工作方式。你还没有发现问题。

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

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