如何判断一个对象中有汉字,数字,大写字母,小写字母?

var obj ={v1:"汉字",v2:"A",v3:"a",v4:1};

判断汉字、数字、大小写字母都可以用正则表达式完成,当然对于数字,可能还需要先进行类型判断

  • 汉字:/[\u4E00-\u9FA5]/,全汉字 /^[\u4E00-\u9FA5]+$/
  • 大写字母:/[A-Z]/,全大写 /^[A-Z]+$/
  • 小字字母类似
  • 数字类似

判断数字类型

function isNumber(v) {
    switch(typeof(v)) {
        case "number":
            return !isNaN(v)
        case "string":
            return /^\d+$/.test(v);
        default:
            return false;
    }
}

如果 obj 是一个数组,通过循环就依次判断即可。如果 obj 是一个对象,使用 Object.keys(obj),取得所有键,再按键获取值依次判断即可。

代码如下:

var obj ={v1:"汉字",v2:"A",v3:"a",v4:1,v5:"1"};

var hanReg = /^[\u4E00-\u9FA5]+$/
var upCharReg = /^[A-Z]+$/;
var lowCharReg = /^[a-z]+$/;
var numReg = /^[\d]+$/;
Object.keys(obj).forEach(function (k) {
   var val = obj[k];
   if(hanReg.test(val)){
     console.log("obj exists hanzi");
   }else if(upCharReg.test(val)) {
     console.log("obj exists upChar");
  }else if(lowCharReg.test(val)){
     console.log("obj exists lowChar");
   }else if(isNumber(val)){
     console.log("obj exists num");
   }
});

function isNumber(v) {
  switch(typeof(v)) {
    case "number":
      return !isNaN(v)
    case "string":
      return numReg.test(v);
    default:
      return false;
  }
}

注意

(1)首先JavaScript 里没有var obj ={"汉字","A","a",1};这种语法,要么是数组语法 var obj =[“汉字”,”A”,”a”,1];,要么是对象语法 var obj ={v1: “汉字”, v2: “A”, v3: “a”, v4: 1};。
(2)
.表示除\n之外的任意字符
*表示匹配0-无穷
+表示匹配1-无穷
?等价于匹配长度{0,1}
(3)\u后面加上十六进制代码来表示Unicode字符
(4)分为全为汉字或者存在汉字两种情况

参考:https://segmentfault.com/q/1010000011452876

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值