搜索日期是否包含列表中的月份

Search if date contains the month from list

本文关键字:列表 日期 是否 包含 搜索      更新时间:2023-09-26

我需要这个脚本的帮助,我需要看看我的日期是否包含这些

('Sau', 'Vas', 'Kov', 'Bal', 'Geg', 'Bir','Lie', 'Rgp', 'Rgs', 'Spa', 'Lap', 'Grd'); 
例如

  • 正确的例子:

    if date 2015/Bal/01

  • 错误的例子:

    如果2015/Bel/01

i have try doing this:

    var myString = txtCellEditor.value;
    if (myString.contains('Sau', 'Vas', 'Kov', 'Bal', 'Geg', 'Bir','Lie', 'Rgp', 'Rgs', 'Spa', 'Lap', 'Grd') >= 0) { 
        alert('Yes');
    } else { 
        alert('No');
    }

但这没有用,因为每次它都写Yes。请帮助。

var myString = txtCellEditor.value;
if (myString.contains(['Sau', 'Vas', 'Kov', 'Bal', 'Geg', 'Bir','Lie', 'Rgp', 'Rgs', 'Spa', 'Lap', 'Grd']) >0) { 
    alert('Yes');
} else { 
    alert('No');
}

试试

或者你可以使用一些:

var myString = txtCellEditor.value;
if (['Sau', 'Vas', 'Kov', 'Bal', 'Geg', 'Bir','Lie', 'Rgp', 'Rgs', 'Spa', 'Lap', 'Grd'].some(month => myString.contains(month))) {
    alert('Yes');
} else { 
    alert('No');
}

String.contains不是JavaScript规范的一部分,可能不会在所有浏览器中普遍支持。

用正则表达式代替

var myString = txtCellEditor.value;
if (myString.match(/Sau|Vas|Kov|Bal|Geg|Bir|Lie|Rgp|Rgs|Spa|Lap|Grd/i)) { 
    alert('Yes');
} else { 
    alert('No');
}

我已经做了一个工作小提琴,但是警告是非常烦人的xD

var myString = "Kov";
var monthsArray = ['Sau', 'Vas', 'Kov', 'Bal', 'Geg', 'Bir','Lie', 'Rgp', 'Rgs', 'Spa', 'Lap', 'Grd'];
for (var i = 0; i < monthsArray.length; i++){
  (myString.indexOf(monthsArray[i]) > -1) ? alert("yes") : alert("no");
}
https://jsfiddle.net/2c58rssL/