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

ReactJS中如何忽略双引号、逗号及空格比较两个字符串?

在ReactJS中忽略双引号、逗号与空格比较字符串的方案

嘿,这问题我熟!要在ReactJS里忽略双引号("")、逗号和空格来比较两个字符串,关键是先对两个字符串做统一的字符清理预处理,再拿处理后的结果做对比就行。我给你拆解下具体做法:

第一步:写一个字符清理工具函数

先封装一个通用函数,把字符串里的目标字符全部移除。用正则表达式就能轻松搞定:

const cleanString = (str) => {
  // 处理空值(null/undefined),避免调用replace时报错
  if (!str) return '';
  // 全局匹配双引号、逗号、空格,替换为空字符串
  return str.replace(/[" ,]/g, '');
};

这个正则里的[" ,]就是匹配你要忽略的三个字符,g标记确保把字符串里所有符合条件的字符都替换掉,而不是只替换第一个。

第二步:把清理后的字符串用于比较

接下来把你原有的比较逻辑改成用清理后的字符串就行,原代码片段调整后如下:

const cleanedFirstname = cleanString(Obj.firstname);
const cleanedEverContactFirstName = cleanString(this.state.EverContact.firstName.value);

if(cleanedFirstname != cleanedEverContactFirstName) { 
  this.state.CRMContact.infoIcon = 'fas fa-edit red'; 
}

小提醒(可选)

顺便提一句,React官方不建议直接修改this.state的值(比如你代码里的this.state.CRMContact.infoIcon = ...),这种方式不会触发组件的重新渲染,更好的写法是用this.setState()来更新状态:

if(cleanedFirstname != cleanedEverContactFirstName) { 
  this.setState(prevState => ({
    CRMContact: {
      ...prevState.CRMContact,
      infoIcon: 'fas fa-edit red'
    }
  }));
}

不过我完全保留了你提供的原代码逻辑,这个只是给你做个最佳实践的参考~

内容的提问来源于stack exchange,提问作者Atika.Akmal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 07:25:22