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; }