我需要检查变量是否为空或所有空格或只是空白(“”)。
我有以下内容,但它不起作用:
var addr;
addr = " ";
if (!addr) {
// pull error
}
如果我执行以下操作,它会起作用:
if (addr) {
}
我需要的是类似于 C# 方法的东西String.IsNullOrWhiteSpace(value)
。
我需要检查变量是否为空或所有空格或只是空白(“”)。
我有以下内容,但它不起作用:
var addr;
addr = " ";
if (!addr) {
// pull error
}
如果我执行以下操作,它会起作用:
if (addr) {
}
我需要的是类似于 C# 方法的东西String.IsNullOrWhiteSpace(value)
。
一种更接近模仿的非 jQuery 解决方案IsNullOrWhiteSpace
,但仅检测空、空或全空格:
function isEmptyOrSpaces(str){
return str === null || str.match(/^ *$/) !== null;
}
...然后:
var addr = ' ';
if(isEmptyOrSpaces(addr)){
// error
}
* 编辑 * 请注意 op 明确指出:
我需要检查 var是否为 null 或是否有任何空格,或者就此而言只是空白。
因此,虽然是的,但“空白”不仅仅包含 null、空格或空白,我的答案旨在回答 op 的具体问题。这很重要,因为 op 可能不想捕获诸如标签之类的东西。
if (addr == null || addr.trim() === ''){
//...
}
比较null
也会赶上undefined
。如果您也想false
通过,请使用!addr
. 为了向后浏览器兼容性addr.trim()
交换$.trim(addr)
.
您可以使用if(addr && (addr = $.trim(addr)))
这具有实际删除任何外部空格的优点,addr
而不是在执行检查时忽略它。
老问题,但我认为它值得一个更简单的答案。
你可以简单地做:
var addr = " ";
if (addr && addr.trim()) {
console.log("I'm not null, nor undefined, nor empty string, nor string composed of whitespace only.");
}
以上的简化版本:(来自这里:https ://stackoverflow.com/a/32800728/47226 )
function isNullOrWhitespace( input ) {
return !input || !input.trim();
}
您可以创建自己的方法等价于
String.IsNullOrWhiteSpace(value)
function IsNullOrWhiteSpace( value) {
if (value== null) return true;
return value.replace(/\s/g, '').length == 0;
}
isEmptyOrSpaces(str){
return !str || str.trim() === '';
}
在检查空白时,c# 方法使用 Unicode 标准。空白包括空格、制表符、回车和许多其他非打印字符代码。所以你最好使用:
function isNullOrWhiteSpace(str){
return str == null || str.replace(/\s/g, '').length < 1;
}
isEmptyOrSpaces(str){
return str === null || str.trim().length>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');
function isEmptyOrSpaces(str){
return str === null || str.match(/^[\s\n\r]*$/) !== null;
}
你可以试试这个:
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