Nat*_*Pet 77 javascript jquery
我需要检查变量是否为null或是否所有空格或只是空白("").
我有以下,但它不起作用:
var addr;
addr = " ";
if (!addr) {
// pull error
}
Run Code Online (Sandbox Code Playgroud)
如果我执行以下操作,它可以工作:
if (addr) {
}?
Run Code Online (Sandbox Code Playgroud)
我需要的是像C#方法String.IsNullOrWhiteSpace(value).
Mad*_*aks 116
一种非jQuery解决方案,它更接近于模仿IsNullOrWhiteSpace,但仅检测null,empty或all-spaces:
function isEmptyOrSpaces(str){
return str === null || str.match(/^ *$/) !== null;
}
Run Code Online (Sandbox Code Playgroud)
...然后:
var addr = ' ';
if(isEmptyOrSpaces(addr)){
// error
}
Run Code Online (Sandbox Code Playgroud)
*编辑* 请注意,op特别声明"我需要检查var是否为null或者是否有空格或者只是空白".所以,虽然是的,"空格"包含的不仅仅是null,空格还是空白,我的答案是为了回答op的具体问题.这很重要,因为op可能不想捕获像标签这样的东西.
Thi*_*ter 17
您可以使用 if(addr && (addr = $.trim(addr)))
这样做的好处是可以实际删除任何外部空格,addr而不是在执行检查时忽略它.
参考:http://api.jquery.com/jQuery.trim/
Ric*_*asi 14
if (addr == null || addr.trim() === ''){
//...
}
Run Code Online (Sandbox Code Playgroud)
一个null比较也将赶上undefined.如果你想false通过,请使用!addr.为了向后浏览器兼容性掉addr.trim()了$.trim(addr).
san*_*e89 11
老问题,但我认为它值得一个更简单的答案。
你可以简单地做:
var addr = " ";
if (addr && addr.trim()) {
console.log("I'm not null, nor undefined, nor empty string, nor string composed of whitespace only.");
}
Run Code Online (Sandbox Code Playgroud)
您可以创建自己的方法相当于
String.IsNullOrWhiteSpace(value)
function IsNullOrWhiteSpace( value) {
if (value== null) return true;
return value.replace(/\s/g, '').length == 0;
}
Run Code Online (Sandbox Code Playgroud)
上面的简化版本:(来自这里:https : //stackoverflow.com/a/32800728/47226)
function isNullOrWhitespace( input ) {
return !input || !input.trim();
}
Run Code Online (Sandbox Code Playgroud)
isEmptyOrSpaces(str){
return !str || str.trim() === '';
}
Run Code Online (Sandbox Code Playgroud)