如何在 JavaScript 中比较字符串

2025年4月19日 | 阅读 5 分钟

JavaScript 字符串比较简介

JavaScript 提供了一套预定义的方法,允许访问客户端 Web 用户数据,从而能够执行各种操作以满足用户需求,而无需后端技术。其中一个预定义的函数是 localeCompare(),它用于比较脚本语言中的两个字符串。如果函数返回 0,则表示两个字符串值相等。如果第一个字符串排在第二个字符串之前,则返回 -1,如果第二个字符串排在第一个字符串之前,则返回 1。

语法

localeCompare() 方法 用于比较 字符串 值在 JavaScript 中的两个集合。它遵循客户端代码实现的常见格式。

上面的代码说明了字符串比较函数的基本语法,该函数通过 localeCompare() 在网页的 HTML 格式中使用其脚本逻辑。虽然该函数可以独立使用而无需进一步的函数定义,但需要 <script> 标签才能在网页上初始化该方法。

How to Compare Strings in JavaScript

JavaScript 中的字符串比较如何工作?

有几种内置方法在 Web 开发的 JavaScript 编程中的客户端脚本中得到广泛应用。JavaScript 还支持严格比较和涉及类型转换的比较。严格比较(由 === 运算符表示)用于确定两个操作数是否具有相同的数据类型以及是否持有相同的内容,例如相等的字符串值。在大多数情况下,== 运算符用于比较值,并且该运算符的行为类似于严格比较,只是在进行实际比较之前,会先将两个操作数强制转换为相同的数据类型。JavaScript 中使用的其他关系运算符是 <=,其中在对两个操作数进行求值之前,会先将第一个操作数强制转换为其原始类型,然后再继续对表达式进行求值。

字符串通常根据其 Unicode 值按标准的词典顺序排序。要使两个字符串相等,它们的字符序列必须相同,它们的长度必须一致,并且它们必须在相应的位置包含相同的字符。如果值相同,则两个数字也称为严格相等。在某些情况下,NaN 是字符串的操作数,并且必须知道正零和负零是相等的。当字符串值比较中的操作数类型不同时,必须使用严格比较。当操作数是 对象 时,JavaScript 会检查它们的引用。它仅在两个操作数引用同一内存实例时才确定相等性。

如果操作数不同,关系运算符要求操作数具有相同的类型。在 JavaScript 中,该语言会尝试将操作数更改为适合比较的类型。在比较两个实例或对象的操作数时,JavaScript 会检查它们的内部引用;当操作数指向内存中的不同对象时,它们被视为不相等。仅当操作数严格相等并且不允许类型转换时,身份运算符才返回 true 值。非身份运算符 (!==) 在操作数不同且类型也不同时返回 true 值。标准相等运算符(如 == 和!=)使用抽象相等比较算法来确定两个操作数的关系。

如果操作数类型不同,该算法会在进行比较之前自动将它们转换为通用类型。

JavaScript 比较字符串的示例

以下是演示如何在 JavaScript 中比较字符串的各种示例。

示例 1

代码

输出

How to Compare Strings in JavaScript

点击按钮后

How to Compare Strings in JavaScript

不区分大小写的字符串比较

例如,可以要求用户输入姓名,然后检查这些姓名是否在我们的数据库中。在这种情况下,两个字符串不必完全相同;也就是说,允许大小写差异。这些就是不区分大小写的字符串比较的情况。

在字符串比较方法中,不区分大小写意味着忽略大小写,例如使用大写字母还是小写字母。在 JavaScript 中,使用 toLowerCase() 和 toUpperCase() 来不区分大小写地比较两个字符串。

示例 2

代码

输出

How to Compare Strings in JavaScript

在上面的示例中,应用 toUpperCase 方法后比较 str1 和 str2 会使表达式 JAVASCRIPT == JAVASCRIPT 为 true,这意味着当两个字符串转换为大写时它们是相同的。相等运算符 (==) 检查两个字符串是否相等。

在下面的示例中,将 str1 和 str3 都经过 toUpperCase 方法 处理后的比较结果是语句 javascript == javascript 也为 true,因为两个字符串在小写时是相同的。

在最后一个示例中,比较 str1 和 str4 会导致表达式 JavaScript == Typescript 求值为 false,因为 JavaScript 和 Typescript 是两个不同的字符串。

结论

在 JavaScript 中,应使用比较运算符来比较声明的字符串 数据类型 变量,这些运算符返回布尔值。此类比较还可以包括不同的条件运算符。