- Node.js 教程
- Node.js - 首页
- Node.js - 简介
- Node.js - 环境搭建
- Node.js - 第一个应用程序
- Node.js - REPL 终端
- Node.js - 命令行选项
- Node.js - 包管理器 (NPM)
- Node.js - 回调函数概念
- Node.js - 上传文件
- Node.js - 发送电子邮件
- Node.js - 事件
- Node.js - 事件循环
- Node.js - 事件发射器
- Node.js - 调试器
- Node.js - 全局对象
- Node.js - 控制台
- Node.js - 进程
- Node.js - 应用程序扩展
- Node.js - 打包
- Node.js - Express 框架
- Node.js - RESTful API
- Node.js - 缓冲区
- Node.js - 流
- Node.js - 文件系统
- Node.js MySQL
- Node.js - MySQL 入门
- Node.js - MySQL 创建数据库
- Node.js - MySQL 创建表
- Node.js - MySQL 插入数据
- Node.js - MySQL 从表中选择数据
- Node.js - MySQL Where 条件
- Node.js - MySQL Order By 排序
- Node.js - MySQL 删除数据
- Node.js - MySQL 更新数据
- Node.js - MySQL 联接
- Node.js MongoDB
- Node.js - MongoDB 入门
- Node.js - MongoDB 创建数据库
- Node.js - MongoDB 创建集合
- Node.js - MongoDB 插入数据
- Node.js - MongoDB 查找数据
- Node.js - MongoDB 查询
- Node.js - MongoDB 排序
- Node.js - MongoDB 删除数据
- Node.js - MongoDB 更新数据
- Node.js - MongoDB 限制结果
- Node.js - MongoDB 联接
- Node.js 模块
- Node.js - 模块
- Node.js - 内置模块
- Node.js - 实用程序模块
- Node.js - Web 模块
- Node.js 有用资源
- Node.js - 快速指南
- Node.js - 有用资源
- Node.js - 讨论
Node.js - Buffer.indexOf() 方法
NodeJS 的 Buffer.indexOf() 方法用于在缓冲区中搜索值。如果找到该值,则返回该值开始的位置;如果未找到,则返回 -1。如果该值在缓冲区中出现多次,则返回第一次出现的位置。
语法
以下是 NodeJS indexOf() 方法的语法:
buffer.indexOf(value, byteOffset, encoding);
参数
buffer.indexOf() 方法接受三个参数。第一个参数是必填参数,其余两个参数是可选参数。
value − 这是必填参数。它是要在缓冲区中搜索的值。该值可以是字符串、数字或缓冲区。
byteoffset − 这是可选参数。它指定从哪里开始搜索。如果给出负的偏移量值,则将从缓冲区的末尾开始搜索。默认值为 0。
encoding − 如果要搜索的值是字符串,则可以使用此参数指定编码。这是一个可选参数。默认情况下,使用的编码为 utf8。
返回值
Buffer.indexOf() 方法将返回搜索值第一次出现的位置。如果未找到该值,则返回 -1。
示例
在本例中,我们将尝试在创建的缓冲区中搜索一个值并测试结果。
const buffer = Buffer.from('Welcome to TutorialsPoint'); if (buffer.indexOf('Welcome') != -1) { console.log("The string welcome is present in the buffer"); } else { console.log("The string welcome is not present"); }
输出
我们正在缓冲区中搜索字符串 Welcome,该缓冲区包含字符串 "Welcome to Tutorialspoint"。由于给定的字符串存在,因此我们得到以下输出。我们检查该值是否不等于 -1。当我们在缓冲区中没有找到给定值的匹配项时,将返回 -1。
The string welcome is present in the buffer
示例
让我们尝试在下面的示例中给出 byteOffset 参数:
const buffer = Buffer.from('Welcome to TutorialsPoint'); if (buffer.indexOf('Point', 10) != -1) { console.log("The string point is present in the buffer"); } else { console.log("The string point is not present"); }
输出
我们使用了 10 作为 byteOffset。它将从字符串 "Welcome to TutorialsPoint" 的偏移量 10 开始搜索。由于搜索字符串:Point 可用,因此您将看到输出打印为 "字符串 Point 存在于缓冲区中"。
The string point is present in the buffer
示例
在本例中,我们将使用缓冲区作为值来检查它是否在给定的缓冲区中可用。
const buffer = Buffer.from('Welcome to TutorialsPoint'); const result = buffer.indexOf(Buffer.from('TutorialsPoint')); if (result != -1) { console.log("The string TutorialsPoint is present in the buffer"); } else { console.log("The string TutorialsPoint is not present"); }
输出
在 Buffer.indexOf() 方法中,我们使用了一个包含字符串值:TutorialsPoint 的缓冲区。我们的主缓冲区包含字符串:Welcome to TutorialsPoint。因此,由于该字符串存在,因此返回的值是该字符串的起始位置。
The string TutorialsPoint is present in the buffer
示例
让我们尝试一个错误的情况,即检查当字符串不存在时 Buffer.indexOf() 的响应。
const buffer = Buffer.from('Welcome to TutorialsPoint'); if (buffer.indexOf('Testing') != -1) { console.log("The string Testing is present in the buffer"); } else { console.log("The string Testing is not present"); }
输出
我们正在字符串:Welcome to TutorialsPoint 的缓冲区中搜索字符串:Testing。由于它不存在,它将返回 -1。因此,您将看到输出为:字符串 Testing 不存在。
The string Testing is not present
示例
让我们测试 Buffer.indexOf() 中的编码参数。
const buffer = Buffer.from('Hello World'); if (buffer.indexOf('Hello','hex') != -1) { console.log("The string Hello is present in the buffer"); } else { console.log("The string Hello is not present"); }
输出
我们使用了 "hex" 编码。当使用编码进行检查并且字符串存在时,它将返回字符串的起始位置。
The string Hello is present in the buffer
示例
在本例中,我们将使用整数数值,即 utf-8 编码值在缓冲区中进行搜索。
const buffer = Buffer.from('Hello World'); if (buffer.indexOf(72) != -1) { console.log("The character H is present in the buffer"); } else { console.log("The string H is not present"); }
输出
根据 utf-8 编码,72 表示字符 'H'。当在缓冲区中使用整数数值进行搜索时,它将返回字符 H 的位置,因为它存在于缓冲区中。
The string Hello is present in the buffer