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']

需求:点击计算做必传的检验,,由于不是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;
}

      

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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jim-zf

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值