javascript - 检查数组是否为空?

时间:2017-11-11 22:51:48

标签: javascript regex

我试图检查var匹配是否为空,但我没有运气。任何帮助将不胜感激。

var url = document.getElementById("defineNewURL").value;
var urlReg;


var subject = url.toString();
var regex = /^((http[s]?|ftp):\/)?\/?([^:\/\s]+)((\/\w+)*\/)([\w\-\.]+[^#?\s]+)(.*)?(#[\w\-]+)?$/
match = regex.exec(subject);

if(typeof match == 'undefined'){
    urlReg = url;
}else{
    urlReg = match[6];
}

2 个答案:

答案 0 :(得分:1)

当没有匹配时,

//.exec会返回null, 和匹配时的对象。 由于所有对象都是 truthy ,而null falsy , 你可以写下这样的条件:

if (match) {
    urlReg = match[6];
} else {
    urlReg = url;
}

答案 1 :(得分:1)

regex.exec不返回undefined但为null。在您的代码中:

typeof match

返回object

请注意:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/exec

尝试使用这样的代码:

var url = document.getElementById("defineNewURL").value;
var urlReg;


var subject = url.toString();
var regex = /^((http[s]?|ftp):\/)?\/?([^:\/\s]+)((\/\w+)*\/)([\w\-\.]+[^#?\s]+)(.*)?(#[\w\-]+)?$/
match = regex.exec(subject);

if(match == null){
    urlReg = url;
}else{
    urlReg = match[6];
}