先说下普通字符串(英文)比较:
一般使用双等来判断(==),如果还需要类型相同那么就用三等(===)1. 双等(==)是完全向后兼容的,如果两个操作数类型不一致,它会在某些时候自动对操作数进行类型转换
var strA = "hello world"; var strB = new String("hello world"); if(strA == strB){ alert("true!"); //弹出true }这两个变量含有相同的字符序列,但数据类型却不同,前者为string,后者为object,在使用"=="操作符时,JavaScript会尝试各种求值,以检测两者是否会在某种情况下相等。所以下面的表达式结果为true: strA == strB。2. 三等(===)它在求值时不会这么宽容,不会进行类型转换。所以表达式strA === strB的值为false,虽然两个变量持有的值相同。
var strA = "hello world"; var strB = new String("hello world"); if(strA === strB){ alert("true!"); //弹出true }else{ alert("false!!!"); //弹出false }因此,对应的不相等就有"!="和严格的"!==",它们的关系就类似于"=="和"==="。
标题所说的js中文字符串比较
1. 中文字符串比较很容易出问题,首先你可以用上面所说的双等"=="
var str = "不作死不会死"; if(str == "不作死不会死"){ alert("不作死不会死"); }else{ alert("已死!"); }
若是在比较时没有反应,我们可以转换一下思路,我用的是indexOf()这个方法
var str = "不作死不会死"; if(str.indexOf("不作死不会死") == 0){ alert("不作死不会死"); }else{ alert("已死!"); }js indexOf()简介
定义和用法
indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。语法
stringObject.indexOf(searchvalue,fromindex)
参数 描述 searchvalue 必需。规定需检索的字符串值。 fromindex 可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是 0 到 stringObject.length - 1。如省略该参数,则将从字符串的首字符开始检索。 说明
该方法将从头到尾地检索字符串 stringObject,看它是否含有子串 searchvalue。开始检索的位置在字符串的 fromindex 处或字符串的开头(没有指定 fromindex 时)。如果找到一个 searchvalue,则返回 searchvalue 的第一次出现的位置。stringObject 中的字符位置是从 0 开始的。so,I needn`t to say anything!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?