Javascript 什么';在包含到参数之前,检查js中的空字符串是否正确?
我正在构建一个查询字符串,如果VAL为空,我想排除键,正确的方法是什么Javascript 什么';在包含到参数之前,检查js中的空字符串是否正确?,javascript,jquery,Javascript,Jquery,我正在构建一个查询字符串,如果VAL为空,我想排除键,正确的方法是什么 setQueryString: function () { var keyword = $('#keyword').val(); //how to exclude it if keyword is empty? var params = { "keyword": $.trim(keyword) }; return params; } 考虑到,
setQueryString: function () {
var keyword = $('#keyword').val();
//how to exclude it if keyword is empty?
var params = {
"keyword": $.trim(keyword)
};
return params;
}
考虑到,我将有20多个输入,如关键字..尽量避免使用大量IF语句
var keyword = $.trim($('#keyword').val());
var params = {};
if(keyword) {
params.keyword = keyword;
}
return params;
(编辑)
如果你有很多事情要检查,考虑使用循环:
var items = {
keyword: $.trim($('#keyword').val())
// etc.
};
var params = {};
for(var x in items) {
if(items.hasOwnProperty(x) && items[x]) {
params[x] = items[x];
}
}
return params;
或某种函数,例如:
var params = {};
function check(name) {
var value = $.trim($('#' + name).val());
if(value) {
params[name] = value;
}
}
check('keyword');
// etc.
return params;
如果它是空的,则不要设置它:
var keyword = $.trim($('#keyword').val());
var params = {};
if(keyword) {
params.keyword = keyword;
}
return params;
(编辑)
如果你有很多事情要检查,考虑使用循环:
var items = {
keyword: $.trim($('#keyword').val())
// etc.
};
var params = {};
for(var x in items) {
if(items.hasOwnProperty(x) && items[x]) {
params[x] = items[x];
}
}
return params;
或某种函数,例如:
var params = {};
function check(name) {
var value = $.trim($('#' + name).val());
if(value) {
params[name] = value;
}
}
check('keyword');
// etc.
return params;
由于空字符串在JavaScript中是假值,您可以简单地检查val()是否为真:
由于空字符串在JavaScript中是假值,您可以简单地检查val()是否为真: 尝试以下方法:
setQueryString: function () {
var keyword = $.trim($('#keyword').val());
var params = {};
if(keyword !== undefined && keyword !== '') {
params.keyword = keyword;
}
return params;
}
尝试以下方法:
setQueryString: function () {
var keyword = $.trim($('#keyword').val());
var params = {};
if(keyword !== undefined && keyword !== '') {
params.keyword = keyword;
}
return params;
}
如果您有多个参数,并且不需要很多If语句:
setQueryString: function () {
var params = {
'param1': $.trim($('#param1').val()),
'param2': $.trim($('#param2').val())
}
for (p in params) {
if (params.p == null || params.p == '') {
delete params.p;
}
}
return params;
}
如果您有多个参数,并且不需要很多If语句:
setQueryString: function () {
var params = {
'param1': $.trim($('#param1').val()),
'param2': $.trim($('#param2').val())
}
for (p in params) {
if (params.p == null || params.p == '') {
delete params.p;
}
}
return params;
}
我相信你需要
扩展
:我相信你需要扩展
:是的,但是如果我还有20个输入要检查呢?它将成为一个混乱的代码,包含大量的if语句。想知道是否有更干净的方法。@Studiegriffin:为其他可能性而编辑。是的,但是如果我还有20个输入要检查呢?它将成为一个混乱的代码,包含大量的if语句。不知道是否有更干净的方法。@StudieGriffin:为其他可能性而编辑。我认为更好的设计是在对象的实例化中允许空值和空值,并在调用时测试空值,这样,您可以在不需要的地方保存一大堆ifs。(也许程序的其他部分不关心“关键字”是否为null或空,只需要“queryData”?)我认为更好的设计是在对象的实例化中允许null和空值,并在调用时测试null值,这样,您就可以在不需要的地方保存一大堆if。(可能程序的其他部分不关心“关键字”为null或空,只需要“queryData”?)