尝试修改以下函数以处理其他请求。
当数据类型是对象并且在其中包含引号时,函数不起作用,需要将其视为空
//try to handle double quotes as empty
// "\"\"" true, empty string
// '''' true, empty string
// test results
//---------------
// [] true, empty array
// {} true, empty object
// null true
// undefined true
// "" true, empty string
// '' true, empty string
// null true
// true false, boolean
// false false, boolean
// Date false
// function false
function empty ( val ) {
if (typeof val === undefined)
return true;
if (typeof (val) == 'function' || typeof (val) == 'number' || typeof (val) == 'boolean' || Object.prototype.toString.call(val) === '[object Date]')
return false;
if (val == null || val == '' || val.length === 0) // null or empty string or 0 length array
return true;
if (typeof (val) == "object") {
// empty object
var r = true;
for (var f in val) {
r = false;
}
return r;
}
return false;
}
答案 0 :(得分:0)
/ ^( “” | '')。$ /测试(VAL)
if (/^(""|'')$/.test(val) || val == null || val == '' || val.length === 0)
return true;
您可以通过在正则表达式中检查空字符串来缩短条件:
if (/^(""|''|)$/.test(val) || val == null)
return true;