我需要检查一个变量是否为空,或者是否有所有的空格,或者是否为空(“”)。
我有以下方法,但是不管用:
var addr; addr = " "; if (!addr) { // pull error }
如果我这样做,它的工作:
if (addr) { }
我需要的是类似于 C # 方法 String.IsNullOrWhiteSpace(value)的东西。
String.IsNullOrWhiteSpace(value)
你可以使用 if(addr && (addr = $.trim(addr)))
if(addr && (addr = $.trim(addr)))
这样做的好处是,实际上可以从 addr中删除任何外部空格,而不是在执行检查时忽略它。
addr
参考资料: http://api.jquery.com/jQuery.trim/
if (addr == null || addr.trim() === ''){ //... }
null比较也将捕获 undefined。如果您希望 false也通过,请使用 !addr。为了向后浏览器兼容性,将 addr.trim()交换为 $.trim(addr)。
null
undefined
false
!addr
addr.trim()
$.trim(addr)
您可以创建自己的方法
function IsNullOrWhiteSpace( value) { if (value== null) return true; return value.replace(/\s/g, '').length == 0; }
非 jQuery 解决方案更接近于模仿 IsNullOrWhiteSpace,但只检测 null、空或全空:
IsNullOrWhiteSpace
function isEmptyOrSpaces(str){ return str === null || str.match(/^ *$/) !== null; }
然后:
var addr = ' '; if(isEmptyOrSpaces(addr)){ // error }
请注意,行动特别指出:
我需要检查一下 是空的,或者有任何空格,或者仅仅是空的变量。
因此,虽然是的,“空白”包含超过空,空格或空白我的回答是为了回答操作的具体问题。这一点很重要,因为 op 可能不想捕捉诸如制表符之类的东西。
在检查空白时,c # 方法使用 Unicode 标准。空白包括空格、制表符、回车符和许多其他非打印字符代码。因此,你最好使用:
function isNullOrWhiteSpace(str){ return str == null || str.replace(/\s/g, '').length < 1; }
上面的简化版本: (从这里: https://stackoverflow.com/a/32800728/47226)
function isNullOrWhitespace( input ) { return !input || !input.trim(); }
试试这个
/** * 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');
isEmptyOrSpaces(str){ return str === null || str.trim().length>0; }
function isEmptyOrSpaces(str){ return str === null || str.match(/^[\s\n\r]*$/) !== null; }
isEmptyOrSpaces(str){ return !str || str.trim() === ''; }
你可以试试这个:
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
老问题了,但我觉得应该有个更简单的答案。
你可以简单地做:
var addr = " "; if (addr && addr.trim()) { console.log("I'm not null, nor undefined, nor empty string, nor string composed of whitespace only."); }
我只是简单地使用这个,而且大多数情况下它对我都有效。 它首先修剪空白,然后检查长度。
if(value.trim().length === 0) { //code for empty value }
也许这样更容易
if (!addr?.trim()){ //error }