Node.js 中的 buf.includes(value[,byteOffset][,encoding]) 函数

2025年4月26日 | 阅读 4 分钟

Node.js 中 buf.includes(value[, byteOffset][, encoding]) 函数的功能如下。如果给定的值可以在缓冲区中找到,则返回 true,否则返回 false。该值可以是文本字符串、缓冲区、字节(整数)或 Uint8Array。您可以选择使用 byteOffset 参数,该参数默认为 0,用于指定搜索的起始点。在处理字符串时,可以指定可选的编码('utf8'、'ascii' 或 'hex'),其中 'utf8' 是默认值。此方法区分大小写,对于验证缓冲区中是否存在特定数据很有用。

语法

它具有以下语法:

参数

  • 值 (Value): 您要在缓冲区中查找的值。可以使用字符串、缓冲区、Uint8Array 或单个数字来表示字节。
  • byteOffset (可选): 开始在缓冲区中搜索的字节偏移量。如果设置为 0,则从缓冲区开头开始搜索。
  • 编码 (Encoding): 如果值是字符串,则可以指定使用的编码(如“utf8”、“ascii”、“hex”等)。如果未指定,则默认值为 'utf8'。

返回值

如果值在缓冲区中找到,则返回 true;如果未找到,则返回 false。

示例 1

让我们以一个例子来说明 Node.js 中 buf.includes(value[, byteOffset][, encoding]) 函数的用法。

输出

 
true
false
false
true   

示例 2

让我们再举一个例子来说明 Node.js 中 buf.includes(value[, byteOffset][, encoding]) 函数的用法。

输出

 
true 
true
false
true   

说明

  • 在此示例中,缓冲区包含术语“buffer”。
  • “Example”超出了范围。因此,从字节偏移量 20 开始的搜索将不会返回任何结果。

示例 3

让我们再举一个例子来说明 Node.js 中 buf.includes(value[, byteOffset][, encoding]) 函数的用法。

输出

 
true
true
true
true
true   

说明

  • 在此示例中,通过 Buffer.from() 方法创建了十六进制形式的缓冲区。
  • 该函数用于确定字符串“Hello”是否存储在缓冲区中。缓冲区的响应是“Hello”。应注意,它们都默认使用“utf8”编码,因此当它读取到单词“Hello”时,会做出积极的响应。
  • 搜索以此“Hello”为参考来查找字符串。由于缓冲区中的“World”位于从字节开头算起的第 6 个字节处,因此结果为正。
  • 在这里,相同的算法执行相同的操作,通过查找字母“W”来执行,该字母在 ASCII 码中的字节数为 87。由于“World”包含字母“W”,因此答案将是“是”。
  • 使用 'ascii' 编码时,“Hello”将会被找到。提供 ASCII 格式的缓冲区使其能够准确识别。
  • 这就是 Node.js 中 buf.includes(value[, byteOffset][, encoding]) 函数的工作方式。如果可以在缓冲区中找到指定的值,则返回 true;否则,返回 false。该值可以是文本字符串、缓冲区、字节(整数)或 Uint8Array。

结论

总之,使用 buf.includes(value[, byteOffset][, encoding]) 函数,您可以非常快速地确定缓冲区是否包含某个特定值。您可以使用字节值、缓冲区、字符串和多种编码进行灵活的搜索。此外,您还可以使用 byteOffset 选项从其他位置开始搜索。当您处理二进制数据和低级流并需要确保某些模式和值确实存在时,它非常有用。由于它可以处理多种编码和原始 字节 数据,因此它是 Node.js 应用程序中用于缓冲区操作的非常灵活的工具。