当前位置:首页 > JavaScript

js实现endwith

2026-03-13 19:17:37JavaScript

检查字符串是否以指定后缀结尾

在JavaScript中,没有内置的endWith方法,但可以通过以下方式实现类似功能:

String.prototype.endWith = function(suffix) {
    return this.indexOf(suffix, this.length - suffix.length) !== -1;
};

使用示例

let str = "Hello World";
console.log(str.endWith("World"));  // true
console.log(str.endWith("world"));  // false

更严谨的实现方式

考虑大小写敏感性的实现:

js实现endwith

String.prototype.endWith = function(suffix, ignoreCase) {
    var str = this;
    if (ignoreCase) {
        str = str.toLowerCase();
        suffix = suffix.toLowerCase();
    }
    return str.length >= suffix.length && 
           str.slice(str.length - suffix.length) === suffix;
};

ES6实现方式

使用现代JavaScript语法:

const endWith = (str, suffix) => str.endsWith(suffix);

注意:ES6已经原生提供了String.prototype.endsWith()方法,可以直接使用:

js实现endwith

'Hello World'.endsWith('World');  // true

性能优化版本

对于大量字符串操作,可以考虑:

String.prototype.endWith = function(suffix) {
    var len = suffix.length;
    return this.length >= len && 
           this.lastIndexOf(suffix) === this.length - len;
};

兼容性处理

如果需要兼容旧浏览器:

if (!String.prototype.endsWith) {
    String.prototype.endsWith = function(search, this_len) {
        if (this_len === undefined || this_len > this.length) {
            this_len = this.length;
        }
        return this.substring(this_len - search.length, this_len) === search;
    };
}

标签: jsendwith
分享给朋友:

相关文章

js实现动画

js实现动画

使用 CSS 动画与 JavaScript 控制 通过 JavaScript 动态添加或移除 CSS 类来触发动画。CSS 定义关键帧(@keyframes),JavaScript 通过 classL…

js 实现分页

js 实现分页

实现分页的基本逻辑 分页功能通常需要后端返回数据总量或总页数,前端根据当前页码和每页条数截取对应数据。以下是一个基于JavaScript的简单分页实现方案: 前端分页实现 假设已有从后端获取的完整数…

js实现报表

js实现报表

使用JavaScript实现报表 在JavaScript中实现报表功能可以通过多种方式完成,常见的方法包括使用原生JavaScript、第三方库(如Chart.js、D3.js)或结合后端数据渲染。以…

js实现自举

js实现自举

实现 JavaScript 自举的方法 JavaScript 自举(Bootstrap)通常指通过 JavaScript 动态加载自身或依赖的脚本,实现运行时环境的初始化或扩展。以下是几种常见实现方式…

js实现授权

js实现授权

授权流程设计 授权流程通常涉及前端与后端的交互,常见方案包括OAuth2.0、JWT等。以JWT为例的典型流程: 用户提交凭证(如用户名密码)到认证服务 服务端验证通过后生成包含用户信息的JWT令牌…

链表实现js

链表实现js

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和一个指向下一个节点的指针(单向链表)或两个指针(双向链表)。与数组不同,链表在内存中非连续存储,插入和删除操作更高效,但随机…