endsWith() 是 JavaScript 字符串原生方法,用于判断字符串是否以指定子串结尾,返回布尔值,支持可选的长度参数,常用于条件过滤、路径处理和权限校验等场景。
`endswith()` 是
java
script 字符串原生方法,用于判断字符串是否以指定子串结尾,返回布尔值,支持可选的长度参数,常用于条件过滤、路径处理和权限校验等场景。
在实际开发中,String.prototype.endsWith() 是一个简洁高效的字符串匹配工具,尤其适用于需要基于后缀进行逻辑分支的场景(如跳过带 :yazma 的权限键名)。它语法简单、语义清晰,且无需正则即可完成精准后缀判断。
基本语法
searchString:必需,要搜索的子串(区分大小写);
length:可选,指定在字符串的前 length 个字符内进行匹配(默认为字符串全长)。
实际应用示例(结合你的权限过滤场景)
你提供的代码中,需排除以 :yazma 结尾的权限键(如 "bina-verisi:yazma"),避免将其作为 CSS 类名传入 jQuery 选择器($("." + a))导致语法错误。使用 endsWith() 可安全、直观地实现过滤:
✅
优势说明
:
比 a.indexOf(':yazma') === a.length - 6 更可读;
比正则 /.*:yazma$/.test(a) 更轻量、无编译开销;
天然支持 Unicode,对中文、特殊符号等无兼容性问题。
注意事项与最佳实践
浏览器兼容性
:endsWith() 自 ES6 起被广泛支持(Chrome 41+、Firefox 17+、Edge 12+、Safari 9+);若需兼容 IE,可用 Polyfill 或 a.slice(-6) === ':yazma' 替代;
空字符串行为
:"hello".endsWith("") 返回 true(任何字符串都以空字符串结尾);
区分大小写
:"File.TXT".endsWith(".txt") 返回 false,如需忽略大小写,建议先转小写:a.toLowerCase().endsWith(':yazma');
性能提示
:在高频循环中(如万级元素遍历),endsWith() 时间复杂度为 O(m),m 为子串长度,远优于正则匹配,推荐优先使用。
扩展:更通用的过滤策略
若业务中还需排除其他带冒号的变体(如 :okuma、:silme),可升级为正则或 includes() 简单判断:
Eclipse导入Android或其他的JAVA项目的正确方法 WORD版
本文档主要讲述的是Eclipse导入Android或其他的JAVA项目的正确方法;希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看
下载
立即学习
“
Java免费学习笔记(深入)
”;
总之,endsWith() 是现代 JavaScript 字符串操作的基石方法之一——用得准,代码更健壮;用得巧,逻辑更清晰。在权限控制、路由匹配、文件扩展名识别等场景中,值得作为首选工具。
str.endsWith(searchString[, length])adlar.forEach(function(a) {
if (!a.endsWith(':yazma')) {
$("." + a)
.parent()
.remove();
}
});// 方案1:仅排除含冒号的项(更宽松)
if (!a.includes(':')) {
$("." + a).parent().remove();
}
// 方案2:精确匹配多种后缀(ES2021+ 可用 Array.some + endsWith)
const writeSuffixes = [':yazma', ':edit', ':update'];
if (!writeSuffixes.some(suffix => a.endsWith(suffix))) {
$("." + a).parent().remove();
}