Node.js - Buffer.includes() 方法



NodeJS buffer.includes()方法检查给定值在缓冲区内部是否可用或包含在缓冲区中。如果存在,则返回 true,如果不存在,则返回 false。

语法

以下是 NodeJs includes() 方法的语法 -


 buf.includes(value[, byteOffset][, encoding])

参数

buffer.includes() 方法接受三个参数。第一个参数是必需的,其余参数都是可选的。

  • value −这是一个必需的参数。它是要在缓冲区内搜索的值。
  • byteoffset −这是可选参数。它讲述了从哪里开始搜索的偏移量。如果给出负偏移值,它将从缓冲区的末端进行搜索。默认值为 0。
  • encoding −如果要搜索的值是一个字符串,则可以使用此参数给出编码。它是一个可选参数。默认情况下,使用的编码是 utf8。

返回值

如果在缓冲区中找到值,则 buffer.includes() 方法返回 true,如果不是 false。

在此示例中,将尝试在创建的缓冲区内搜索值并测试结果。


const buffer = Buffer.from('Welcome to Qikepu.com');

if (buffer.includes('Welcome')) {
	 	console.log("The string welcome is present in the buffer");
} else {
	 	console.log("The string welcome is not present");
}

输出

我们正在使用字符串“Welcome to Qikepu.com”创建的缓冲区中搜索字符串 Welcome。由于给定的字符串存在,我们得到下面的输出。

The string welcome is present in the buffer

让我们尝试在下面的示例中给出 byteOffset 参数 -


const buffer = Buffer.from('Welcome to Qikepu.com');
if (buffer.includes('Point', 10)) {
	 	console.log("The string point is present in the buffer");
} else {
	 	console.log("The string point is not present");
}

输出

我们使用 byteOffset 作为 10。它将在字符串“Welcome to Qikepu.com”中从 10 的偏移量中搜索。由于搜索字符串:Point 可用,您将获得打印为“字符串点存在于缓冲区中”的输出。

The string point is present in the buffer

在此示例中,将使用缓冲区作为值来检查它在给定缓冲区内是否可用。


const buffer = Buffer.from('Welcome to Qikepu.com');
const result 	= buffer.includes(Buffer.from('Qikepu.com'));
if (result) {
	 	console.log("The string Qikepu.com is present in the buffer");
} else {
	 	console.log("The string Qikepu.com is not present");
}

输出

在 Buffer.includes() 方法中,我们使用了一个具有字符串值的缓冲区:Qikepu.com。我们的主要缓冲区有一个字符串:Welcome to Qikepu.com。因此,由于字符串存在,因此返回的值为 true。

The string Qikepu.com is present in the buffer

让我们尝试一个错误的情况,即在字符串不存在时检查 Buffer.includes() 的响应。


const buffer = Buffer.from('Welcome to Qikepu.com');

if (buffer.includes('Testing')) {
	 	console.log("The string Testing is present in the buffer");
} else {
	 	console.log("The string Testing is not present");
}

输出

我们正在搜索字符串:使用字符串在缓冲区内进行测试:欢迎使用 Qikepu.com。由于它不存在,因此它将返回值 false。因此,您将得到以下输出: The string Testing is not present。

The string Testing is not present

让我们测试一下 Buffer.includes() 中的编码参数。


const buffer = Buffer.from('Hello World');
if (buffer.includes('Hello','hex')) {
	 	console.log("The string Hello is present in the buffer");
} else {
	 	console.log("The string Hello is not present");
}

输出

我们使用了“十六进制”编码。当使用编码进行检查并且字符串存在时,它将返回 true。

The string Hello is present in the buffer

在此示例中将使用整数值,即 utf-8 编码值在缓冲区中搜索。


const buffer = Buffer.from('Hello World');
if (buffer.includes(72)) {
	 	console.log("The character H is present in the buffer");
} else {
	 	console.log("The string H is not present");
}

输出

这里 72 代表字符“H”,按照 utf-8 编码。当在缓冲区中使用整数值进行搜索时,由于存在 H 字符,因此返回 true。

The string Hello is present in the buffer