javascript-检查数组是否为空?
我试图检查var匹配是否为空,但我没有任何运气。任何帮助都将不胜感激javascript-检查数组是否为空?,javascript,regex,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.ex
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];
}
/.exec
在不匹配时返回null
,
和一个匹配的对象。
由于所有对象都是真实的,null
是虚假的,
您可以这样写条件:
if (match) {
urlReg = match[6];
} else {
urlReg = url;
}
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];
}
regex.exec
不返回undefined,但返回null。在您的代码中:
typeof match
返回对象
看看:
并尝试使您的代码如下所示:
if (match) {
urlReg = match[6];
} else {
urlReg = url;
}
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];
}
请添加数组。