如果没有找到,Regexp.match.length返回NULL



我有一个JS regexp.

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

如果str包含单词[h1],则工作正常,否则显示错误!
如何解决这个问题?

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

你分两步来做,在你得到长度之前先测试它。

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;
}

最新更新