You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

公司名称多条件非包含判断逻辑问题求助(附代码)

解决表单判断逻辑问题:正确判断公司名既不包含Be也不包含Pe

我来帮你理清楚这个逻辑问题哈!你之前的核心问题是逻辑运算符用错了,导致判断条件不符合预期,另外还需要处理名称未输入的边界情况。

问题分析

你写的!this.company.name.includes("Be") || !this.company.name.includes("Pe")其实表达的是只要公司名不同时包含Be和Pe,就会触发这个分支——比如公司名是"BeCorp",它不包含Pe,所以!includes("Pe")为true,整个条件就成立了,这显然不是你想要的“既不包含Be也不包含Pe”的判断。

根据逻辑运算的De Morgan定律,“既不包含A也不包含B”等价于“不包含A 并且 不包含B”,也就是要用&&而不是||。

另外,你提到的“未输入时的问题”,是因为当this.company.name为空字符串时,!includes("Be")和!includes("Pe")都会返回true,会错误触发category=0的分支,所以我们需要先单独处理空名称的情况。

修正后的代码

if (this.company) { 
  // 先处理名称未输入/为空的情况
  if (!this.company.name || this.company.name.trim() === '') {
    // 这里可以根据需求设置默认值,比如:
    this.category = null; // 或者你想要的其他处理,比如提示用户输入
    // 移除表单后续问题的代码也可以在这里调整,避免空值触发错误逻辑
  } 
  // 正确判断:既不包含Be也不包含Pe
  else if (!this.company.name.includes("Be") && !this.company.name.includes("Pe")) {
    this.category = 0; 
    // 用于移除表单后续问题的代码.. 
  } 
  else if (this.company.name.includes("Be")) { 
    this.category = 1; 
    // 相关代码... 
  } 
  else if (this.company.name.includes("Pe")) { 
    this.category = 2; 
    // 相关代码... 
  } 
}

额外提示

如果需要忽略大小写判断(比如公司名是"beCorp"或者"PEGroup"也能匹配),可以把字符串转成小写后再判断:

const companyName = this.company.name.toLowerCase();
// 后续判断用companyName.includes("be")和companyName.includes("pe")

内容的提问来源于stack exchange,提问作者Fastersixth

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 08:58:11