如何在javascript或jquery中将值与逗号分隔值进行比较

时间:2015-05-22 13:57:16

标签: javascript jquery

我想在javascript或jquery中将值与逗号分隔值进行比较。因为我做了以下代码,剩下的是什么?:

 var str = $('#reg').val();
 // i got str = 1,2,3

我需要将它与值进行比较,以便我能做到这一点:

if (str == 1) {
    $('.WBE').show();
} else {
    $('.WBE').hide();
}

if (str == 2) {
    $('.VOBE').show();
} else {
    $('.VOBE').hide();
}

if (str == 3) {
    $('.MBE').show();
} else {
    $('.MBE').hide();
}

2 个答案:

答案 0 :(得分:1)

您可以将字符串值转换为数组,并使用$.inArray检查其包含的值:

var values = $('#reg').val().split(',');
$('.WBE')[$.inArray('1', values) != -1 ? 'show' : 'hide']();
$('.VOBE')[$.inArray('2', values) != -1 ? 'show' : 'hide']();
$('.MBE')[$.inArray('3', values) != -1 ? 'show' : 'hide']();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="WBE">WBE</div>
<div class="VOBE">VOBE</div>
<div class="MBE">MBE</div>

<input id="reg" value="1,3" />

答案 1 :(得分:1)

如果您要检查字符串是否包含1,2或3,那么您可以这样做:

var str = $('#reg').val();

if(str.indexOf("1") != -1) {
    $('.WBE').show();
} else {
    $('.WBE').hide();
}
if(str.indexOf("2") != -1) {
    $('.VOBE').show();
} else {
    $('.VOBE').hide();
}
if(str.indexOf("3") != -1) {
    $('.MBE').show();
} else {
    $('.MBE').hide();
}

或使用三元运算符

$('.WBE')[~str.indexOf('1') ? 'show' : 'hide']();
$('.VOBE')[~str.indexOf('2') ? 'show' : 'hide']();
$('.MBE')[~str.indexOf('3') ? 'show' : 'hide']();

循环遍历数组和三元运算符

['WBE', 'VOBE', 'MBE'].forEach(function(class, index) {
    $(class)[~str.index(index+1) ? 'show' : 'hide']();
});

只有0-9才能使用。如果您有2位或更多位数,那么您应该转换为数组并检查数组是否包含数字...