jQuery - 如何确定变量的一部分是否在数组中

标签 jquery arrays if-statement

我想要这样,当用户输入他们的邮政编码时,它会看到我们是否支持他们的区域。我已经完成了此操作,但我没有将数千个可能的邮政编码放入数组中,而是将部分邮政编码放入数组中。这是我到目前为止所拥有的:

var zips = ['CM14','CM11','CM12','CM13','SS16','SS15','CM1','CM2','CM4','SS12','SS13','SS14','CM15','SS11'];
var bad = ['CM16','CM17','CM18','CM19','CM20','CM21','CM23','CM24','CM25','CM26','CM2','CM28','CM29'];
$(function(){
  $('input[name=zip]').on( 'blur' , function(){
    var currentVal = $(this).val();
    var res = currentVal.toUpperCase();
    if($.inArray(res, bad)> -1){
    $('.checkout_button').prop('disabled',true);
     alert("if")
    } else if($.inArray(res, zips)> -1){
     alert("else if")
     $('.checkout_button').prop('disabled',false);
    } else {
     alert("else")
     $('.checkout_button').prop('disabled',true);
      }
    });
});

上面的内容有效,但我希望这样,如果用户输入SS12 7HF,那么它会返回else if,因为SS12是一部分SS12 7HF。我该如何完成这个?

我是 jQuery 新手。

最佳答案

尝试使用空格进行分割,并在匹配之前始终获取第一部分(zip):

var res = currentVal.split(' ')[0].toUpperCase();

代码:

var zips = ['CM14', 'CM11', 'CM12', 'CM13', 'SS16', 'SS15', 'CM1', 'CM2', 'CM4', 'SS12', 'SS13', 'SS14', 'CM15', 'SS11'];
var bad = ['CM16', 'CM17', 'CM18', 'CM19', 'CM20', 'CM21', 'CM23', 'CM24', 'CM25', 'CM26', 'CM2', 'CM28', 'CM29'];
$(function() {
  $('input[name=zip]').on('blur', function() {
    var currentVal = $(this).val();
    var res = currentVal.split(' ')[0].toUpperCase();


    if ($.inArray(res, bad) > -1) {
      $('.checkout_button').prop('disabled', true);
      alert("if")
    } else if ($.inArray(res, zips) > -1) {
      alert("else if")
      $('.checkout_button').prop('disabled', false);
    } else {
      alert("else")
      $('.checkout_button').prop('disabled', true);
    }
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<input name="zip" />

关于jQuery - 如何确定变量的一部分是否在数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47846963/

相关文章:

javascript - 在 IE7 中加载外部 Javascript 文件的问题

javascript - 缩放不同宽度的图像以适合一行并保持相同的高度

java - 如何制作 if 语句来查看数组是否具有特定的数字和字符并返回 boolean 值

c - 递归传入数组地址作为参数

javascript - 我无法让 .addClass 在 IE11 中工作

javascript - 如何将javascript变量传递给服务器端asp.net

c# - 将 1d 数组索引转换为 3d 数组索引?

bash - Makefile中的基本if else语句

java - 数据插入数据库android后如何顺序更改textview

javascript - 如何避免在 AJAX 中的 if/else 语句中重复代码