javascript中判断逗号分隔的数字中是否包含指定数字

现在我有一个变量,里面维护了数值和类别的对应关系

var numberType =
	{"1":"AType",
	"2,3,4":"BType",
	"5,6,7,8":"CType",
	"9,10,11,12,13":"DType"};

比如,传入一个值“1”,函数返回对应类别“AType”;传入一个值“2”,函数返回对应类别“BType”

具体实现代码如下:

// 根据数字查找对应类别
function findTypeByNum(num) {
	var numberType =
		{"1":"AType",
		"2,3,4":"BType",
		"5,6,7,8":"CType",
		"9,10,11,12,13":"DType"};
	
	var pattern = new RegExp("\\b" + num + "\\b");
	for (var obj in numberType) {
		if (obj.match(pattern)) {
			return numberType[obj];
		}
	}
}

当时为了尽快解决问题,没有采用上面的正则匹配(主要是卡在给反斜线转义这部分)写法。用了另外一种,能够实现功能,但稍显麻烦:

function findTypeNum(num) {
	var a = [1];
    var b =[2,3,4];
    var c = [5,6,7,8];
    var d = [9,10,11,12,13];

    var allVars = [a, b, c, d];
    var varNames = ["AType", "BType", "CType", "DType"];

    for (var i = 0; i < allVars.length; i++) {
        if ($.inArray(parseInt(num), allVars[i])!=-1) {
            return varNames[i];
        }
    }
}

 

你可能感兴趣的:(javascript,正则表达式,jquery)