js数组中是否包含某个字符串

let arr = ['000 Version表-9月.XLSX',
 '实际销量表-FY22截至9月底销量.XLSX',
 '入库记录表-20220914.XLSX',
 'Rolling Forecast-20220901.xlsx', 
'当前财年Allocation表-202210.xlsx',
 '下个财年Allocation表-FY23.xlsx', 
'当前财年财务Demand数据表-FY22.xlsx',
 '下个财年财务Demand数据表-FY23.xlsx',
 '上个财年底库存结余数据表-0930.XLSX', 
'上月底库存结余数据表.XLSX']

js数组中是否包含某个字符串_第1张图片

需求:点击计算做必传的检验,,由于不是form表单写,所以只能做数组是否包含某个字符串。

思路:要做数组包含字符串判断,其实就是做字符串中包含部分字符串判断,(我们没有全等,是因为表单的名字不确定,所以只能还包含判断)

//推荐使用
//indexOf() 方法:返回某个指定的字符串值在字符串中首次出现的位置。如果要检索的字符串值没有出现,则该方法返回 -1。
var str = "LiHeErNAN";
console.log(str.indexOf("A") != -1 );  // true
console.log(str.indexOf("Q") != -1 );  // false
// search() 方法:用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串。如果没有找到任何匹配的子串,则返回 -1。
var str = "LiHeErNAN";
console.log(str.search("A") != -1 );  // true
//match() 方法:在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。

var str = "abcd";
var reg = RegExp(/d/);
if(str.match(reg)){
    // 包含        
}

//test() 方法:用于检索字符串中指定的值。返回 true 或 false。

var str = "abcd";
var reg = RegExp(/d/);
console.log(reg.test(str)); // true

//exec() 方法:用于检索字符串中的正则表达式的匹配。返回一个数组,其中存放匹配的结果。如果未找到匹配者,则返回值为 null。
var str = "abcd";
var reg = RegExp(/d/);
if(reg.exec(str)){
    // 包含        
}
以上的方法都是RegExp对象的方法。

要做数组数据处理一定会想到遍历,for是个很好的工具不要排斥for,活用for功能,不要以为追求es6。因为是9个需要判断地方所以抽离成公共方法

见代码

  // 数组是否包含部分字符串
  function isStr(arr, str) {
    let n = arr.length;
    for (let i = 0; i < n; i++) {
      if (arr[i].indexOf(str) != -1) {
        return true;
      }
    }
    return false;
  }
   let val;
    val =
      isStr(arr, '000 Version表') &&
      isStr(arr, '实际销量表') &&
      isStr(arr, '入库记录表') &&
      isStr(arr, 'Rolling Forecast') &&
      isStr(arr, '当前财年Allocation表') &&
      isStr(arr, '当前财年财务Demand数据表') &&
      isStr(arr, '下个财年财务Demand数据表') &&
      isStr(arr, '上个财年底库存结余数据表') &&
      isStr(arr, '上月底库存结余数据表');
//只要有一个不满足val就为false

if (!val) {
    message.error('缺少文件,无法计算!请上传对应文件!');
    return false;
}

      js数组中是否包含某个字符串_第2张图片

 前端做了校验后端也需要做。

你可能感兴趣的:(python,开发语言,javascript,java,前端)