如何在JavaScript中进行区分大小写的字符串比较
区分大小写的字符串比较问题解决
当对比"Random"和"RandoM"这两个字符串时,当前代码逻辑会判定二者相等返回true,但实际需要区分大小写的比较逻辑,让这种场景返回false。现有代码如下:
userText = userText + e.target.value; if (userText[userText.length-1] != typeracertext[userText.length-1]) { e.target.value = e.target.value.substring(0, e.target.value.length-1); return; }
解决思路
JavaScript里的!=属于松散比较,会自动做类型转换且对比字符串时忽略大小写,要实现严格区分大小写的对比,有两种简单方法:
- 直接用**严格不等运算符
!==**替换原代码中的!=。严格比较会同时校验值和类型,对字符串来说还会严格对比每个字符的Unicode码点,大小写不同的字符会被判定为不相等,刚好满足需求。修改后的判断条件为:
if (userText[userText.length-1] !== typeracertext[userText.length-1])
- 也可以使用
localeCompare()方法,该方法默认支持区分大小写的字符串对比,返回规则如下:
str1.localeCompare(str2) // 两字符串区分大小写相等时返回 0 // 若 str2 在排序优先级上更高返回 -1 // 若 str1 在排序优先级上更高返回 1
通过判断返回值是否不为0,就能实现区分大小写的比较逻辑。
内容的提问来源于stack exchange,提问作者RVasilev
相关产品推荐
相关产品推荐

