当前位置:首页 > JavaScript

js实现endwith

2026-01-31 21:17:21JavaScript

实现 JavaScript 的 endsWith 方法

JavaScript 本身提供了 String.prototype.endsWith() 方法,用于判断字符串是否以指定的子字符串结尾。如果需要手动实现类似功能,可以参考以下方法:

function customEndsWith(str, searchString, position) {
  if (position === undefined || position > str.length) {
    position = str.length;
  }
  position -= searchString.length;
  return position >= 0 && str.indexOf(searchString, position) === position;
}

参数说明

  • str: 要检查的原字符串
  • searchString: 要搜索的子字符串
  • position(可选): 在字符串中搜索的位置,默认为字符串长度

使用示例

const str = "Hello, world!";
console.log(customEndsWith(str, "world!"));  // true
console.log(customEndsWith(str, "World!"));  // false
console.log(customEndsWith(str, "Hello", 5));  // true

兼容性处理

对于需要支持旧版 JavaScript 引擎的环境,可以添加以下 polyfill:

js实现endwith

if (!String.prototype.endsWith) {
  String.prototype.endsWith = function(searchString, position) {
    var subjectString = this.toString();
    if (typeof position !== 'number' || !isFinite(position) || 
        Math.floor(position) !== position || position > subjectString.length) {
      position = subjectString.length;
    }
    position -= searchString.length;
    return position >= 0 && subjectString.indexOf(searchString, position) === position;
  };
}

性能考虑

原生 endsWith 方法通常比手动实现的性能更好,因此在支持的环境中应优先使用原生方法。手动实现主要适用于需要兼容旧环境或特殊定制的场景。

标签: jsendwith
分享给朋友:

相关文章

vue实现js休眠

vue实现js休眠

Vue 中实现 JavaScript 休眠 在 Vue 中实现 JavaScript 休眠通常需要使用异步方式,以避免阻塞主线程。以下是几种常见方法: 使用 setTimeout 和 Pro…

js实现乘

js实现乘

JavaScript 实现乘法运算 在 JavaScript 中实现乘法运算可以通过多种方式完成,包括基本运算符、函数封装以及高级算法(如大数乘法)。以下是几种常见方法: 使用基本乘法运算符 Jav…

js实现延迟

js实现延迟

实现延迟的方法 在JavaScript中,实现延迟操作有多种方式,以下是几种常见的方法: 使用setTimeout函数 setTimeout是JavaScript中最常用的延迟执行方法。它接受一个回…

js实现tab选项卡切换

js实现tab选项卡切换

实现Tab选项卡切换的JavaScript方法 使用纯JavaScript实现Tab切换功能,可以通过监听点击事件动态切换内容显示状态。以下是两种常见实现方式: 基础DOM操作实现 /…

js 实现链表

js 实现链表

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和指向下一个节点的指针。与数组不同,链表在内存中是非连续存储的,插入和删除操作效率较高。 链表的实现 在 JavaScrip…

js jquery

js jquery

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互。它兼容多种浏览器,提供易于使用的 API,使开发者能够…