概述
一、判空
1.字符串String格式判空:
- 直接判断是否与空字符串(’’)相等
var string1 = '';
var string2 = 'abc';
string1 === ''; //返回 true
string2 === ''; //返回 false
- String.trim() 方法
var string1 = "";
var string2 = "abc";
//trim() 函数返回去掉开头和结尾空格后的字符串。
string1.trim() == ""; //返回 true
string2.trim() == ""; //返回 false
2.对象 Object 格式判空
- 使用ES6的 Object.keys() 方法
// 是ES6的新方法, 返回值也是对象中属性名组成的数组
var data = {};
var arr = Object.keys(data);
// 其 length 的值为 0 ,说明为空
alert(arr.length === 0); //true
- 将 json 对象转化为 json 字符串,再判断该字符串是否为"{}"
var data = {};
var b = JSON.stringify(data);
// json 字符串 b 与“{}”相等 ,说明原 json 对象为空
alert(b === "{}"); //true
参考:https://www.cnblogs.com/jpfss/p/9105119.html
3.json 对象属性判空
let jsonObj = {
number: '001',
name: 'Jack',
sex: 'M',
address: '',
hobby: null
}
if (jsonObj.number) { // true
console.log(jsonObj.number);
}
if (jsonObj.address) { // false
console.log(jsonObj.address);
}
if (jsonObj.hobby) { // false
console.log(jsonObj.hobby);
}
二、判断是否为特定格式
- 判断数据格式为 —— NaN 格式 :isNaN(x) 方法
var data1 = 0/0;
var data2 = 1;
console.log(isNaN(data1)); //打印 true
// 返回 true:NaN、对象(除包含单个数值的数组)、undefined、不能用Number()方法转为数值型的字符串
console.log(isNaN(data2)); //打印 false
// 返回 false:数值、null、布尔值、能用Number()方法转为数值型的字符串、包含单个数值的数组如[1]
- 判断输入的字符串(input的内容)是否为纯数字:
(1)Number(x) :number数据类型强制转换,根据返回值判断
- 如果是纯数字字符串,直接转换为数字
如果字符串中有非数字的内容,转换为NaN
如果字符串为空或者全是空格,则转换为0
如果字符串为布尔型(true / false),则转换为 1 / 0
var string1 = "123"; //Number(string1) 返回 123
var string2 = ""; //Number(string2) 返回 0
var string3 = "a1b2c3"; //Number(string3) 返回 NaN
var string4 = true; //Number(string4) 返回 1
var string5 = false; //Number(string5) 返回 0
//判断其返回值不为 0 且不为 NaN ,说明其为纯数字?~不不不,不对
//if(Number(string) !== 0 && isNaN(string) === false) {
// alert("纯数字? 不对。。。")
//}
(2)如果是纯数字的话可以用正则表达式 ^[0-9]*$ 来验证, 如果要包含小数点这种情况的话可以用 ^(-?d+)(.d+)?$ 来验证。
var t = document.getElementsByClassName('val')[0];
t.onchange = function(){
var val = this.value;
if(!isNumber(val)) alert('不是有效的数字');
else alert('是有效的数字')
};
function isNumber(value) { //验证是否为数字(包含小数)
var patrn = /^(-)?d+(.d+)?$/;
if (patrn.exec(value) == null || value == "") {
return false
} else {
return true
}
}
- 判断数据格式为 —— number
(1)自定义方法 isNumber():
//使用 typeof 来检查一个值是否为一个数字。
const isNumber = val => typeof val === 'number';
验证使用:
isNumber('1'); // false
isNumber(1); // true
- 判断格式—— Array
· 建议使用 isArray (ES5方法)来专门处理数组判断。参考:
慕课网—https://www.imooc.com/article/69870
CSDN—https://www.cnblogs.com/lingdu87/p/9152806.htmllet arr = [] arr instanceof Array // true arr instanceof Object // true Array.isArray(arr) // true
更新中…若有错误,还请各位大佬指出~~~
最后
以上就是整齐钢笔为你收集整理的[小结] js判空&数据格式判断的全部内容,希望文章能够帮你解决[小结] js判空&数据格式判断所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复