我需要检查一个变量是否为null或者是否所有空格或只是空格(“”)。
我有以下内容,但它不起作用:
var addr;
addr = " ";
if (!addr) {
// pull error
}
如果我执行以下操作,则可以:
if (addr) {
}
我需要的是像C#方法String.IsNullOrWhiteSpace(value)
。
答案 0 :(得分:99)
非jQuery解决方案更接近于模仿IsNullOrWhiteSpace
,但仅检测null,空或全空格:
function isEmptyOrSpaces(str){
return str === null || str.match(/^ *$/) !== null;
}
...然后:
var addr = ' ';
if(isEmptyOrSpaces(addr)){
// error
}
*编辑* 请注意,op特别指出“我需要检查var是否为null或者是否有空格或者只是空白”。所以,虽然是的,“空格”包含的不仅仅是null,空格还是空白,我的答案是为了回答op的具体问题。这很重要,因为op可能不想捕获像标签这样的东西,例如。
答案 1 :(得分:16)
您可以使用if(addr && (addr = $.trim(addr)))
这样做的好处是可以从addr
中删除任何外部空格,而不是在执行检查时忽略它。
答案 2 :(得分:12)
if (addr == null || addr.trim() === ''){
//...
}
null
比较也会抓住undefined
。如果您希望false
也通过,请使用!addr
。对于addr.trim()
,向后浏览器兼容性交换$.trim(addr)
。
答案 3 :(得分:5)
老问题,但我认为它应该是一个更简单的答案。
您可以轻松地做到:
var addr = " ";
if (addr && addr.trim()) {
console.log("I'm not null, nor undefined, nor empty string, nor string composed of whitespace only.");
}
答案 4 :(得分:3)
您可以创建自己的方法,相当于
String.IsNullOrWhiteSpace(value)
function IsNullOrWhiteSpace( value) {
if (value== null) return true;
return value.replace(/\s/g, '').length == 0;
}
答案 5 :(得分:2)
检查空格时,c#方法使用Unicode标准。空白区域包括空格,制表符,回车符和许多其他非打印字符代码。所以你最好使用:
function isNullOrWhiteSpace(str){
return str == null || str.replace(/\s/g, '').length < 1;
}
答案 6 :(得分:2)
上述简化版:(从此处:https://stackoverflow.com/a/32800728/47226)
function isNullOrWhitespace( input ) {
return !input || !input.trim();
}
答案 7 :(得分:1)
isEmptyOrSpaces(str){
return !str || str.trim() === '';
}
答案 8 :(得分:0)
尝试一下
/**
* Checks the string if undefined, null, not typeof string, empty or space(s)
* @param {any} str string to be evaluated
* @returns {boolean} the evaluated result
*/
function isStringNullOrWhiteSpace(str) {
return str === undefined || str === null
|| typeof str !== 'string'
|| str.match(/^ *$/) !== null;
}
您可以像这样使用它
isStringNullOrWhiteSpace('Your String');
答案 9 :(得分:0)
isEmptyOrSpaces(str){
return str === null || str.trim().length>0;
}
答案 10 :(得分:0)
function isEmptyOrSpaces(str){
return str === null || str.match(/^[\s\n\r]*$/) !== null;
}
答案 11 :(得分:0)
您可以尝试以下方法:
do {
var op = prompt("please input operatot \n you most select one of * - / * ")
} while (typeof op == "object" || op == "");
// execute block of code when click on cancle or ok whthout input