You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何判断URL是否以特定字符串结尾?解决匹配不精准问题

如何判断URL是否仅以/test结尾?

嘿,这个问题我之前也碰到过!用indexOf('/test') !== -1确实会因为匹配到字符串中任意位置的/test而误判——就像你说的www.test.com/test123里也包含/test子串,所以会返回true。要实现仅当URL以/test结尾才返回true,有两个简单靠谱的方法:

方法1:使用String.endsWith()(推荐)

这是ES6引入的原生方法,专门用来检测字符串是否以指定后缀结尾,语法简洁直观,兼容性也很好(现代浏览器和Node.js都支持):

const url1 = 'www.test.com/test';
const url2 = 'www.test.com/test123';

console.log(url1.endsWith('/test')); // 输出 true
console.log(url2.endsWith('/test')); // 输出 false

它会直接帮你定位到字符串末尾进行匹配,完全符合你的需求。

方法2:使用正则表达式

如果你需要更灵活的匹配规则(比如后续可能要扩展匹配模式),可以用正则的$锚点来匹配字符串结尾:

const testEndRegex = /\/test$/; // $ 表示匹配字符串的结束位置,\/ 转义斜杠
const url1 = 'www.test.com/test';
const url2 = 'www.test.com/test123';

console.log(testEndRegex.test(url1)); // 输出 true
console.log(testEndRegex.test(url2)); // 输出 false

这里的$确保了/test必须出现在字符串的最后,不会匹配到中间包含/test的情况。

为什么indexOf不行?

再补充下原因:indexOf只是检查目标子串是否存在于字符串的任意位置,不管它是不是在结尾,所以/test123里的/test会被误判成符合条件,而上面两种方法都是针对结尾位置做精准匹配的,就不会有这个问题啦。

内容的提问来源于stack exchange,提问作者Dreams

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 02:23:26