javascript检查是否为空或空格或空格

我需要检查一下var是否为null或是否有空格,或者是空白(“”)

我有以下但不工作:

var addr; addr = " "; if (!addr) { // pull error } 

如果我遵循它的作品

 if (addr) { }​ 

我需要的是这样的C#方法:

 String.IsNullOrWhiteSpace(value) 

所以,如果它是空的或有空间或没有空间,我可以把它陷害

非jQuery解决scheme更接近模拟IsNullOrWhiteSpace ,但仅检测空值,空值或全部空间:

 function isEmptyOrSpaces(str){ return str === null || str.match(/^ *$/) !== null; } 

…然后:

 var addr = ' '; if(isEmptyOrSpaces(addr)){ // error } 

*编辑*请注意,特别指出“我需要检查一下var是否为空或者有任何空的空间或者只是空白” 。 所以,是的,“空白”包含多于零,空格或空白我的答案旨在回答op的具体问题。 这很重要,因为op可能不想要像tab这样的东西。

你可以使用if(addr && (addr = $.trim(addr)))

这具有实际上从addr移除任何外部空白的优点,而不是在执行检查时忽略它。

参考: http : //api.jquery.com/jQuery.trim/

 if (addr == null || addr.trim() === ''){ //... } 

null比较也将捕获undefined 。 如果你也想通过,使用!addr 。 对于$.trim(addr)向后浏览器兼容性交换addr.trim() $.trim(addr)

你可以创build自己的方法相当于

String.IsNullOrWhiteSpace(value)

 function IsNullOrWhiteSpace( value) { if (value== null) return true; return value.replace(/\s/g, '').length == 0; } 

在检查空白时,c#方法使用Unicode标准。 空格包括空格,制表符,回车符和许多其他非打印字符代码。 所以你最好使用:

 function isNullOrWhiteSpace(str){ return str == null || str.replace(/\s/g, '').length < 1; }