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

如何编写JavaScript正则表达式:匹配.ts后缀但排除.vue.ts文件?

解决方案:匹配纯.ts后缀文件,排除.vue.ts结尾的情况

我懂你要的需求——就是要精准识别那些直接以.ts结尾的文件,像file.vue.ts这种带着.vue前缀后缀的绝对不能算对吧?试一下这个正则表达式,应该能解决你的问题:

/(?<!\.vue)\.ts$/

来拆解一下这个正则的逻辑:

  • $:锚定到字符串的末尾,保证我们匹配的.ts是文件名的最后一部分
  • (?<!\.vue):这是负向后瞻断言,简单说就是“在.ts这个位置的前面,绝对不能出现.vue这串字符”

这样一来:

  • file.ts会被匹配:.ts前面是文件名的其他部分,没有.vue
  • file.vue.ts会被排除:.ts前面刚好就是.vue,触发了断言的排除规则

你可以用JavaScript的test方法快速验证效果:

const tsRegex = /(?<!\.vue)\.ts$/;

// 测试用例
console.log(tsRegex.test("file.ts"));          // true ✅
console.log(tsRegex.test("file.vue.ts"));      // false ❌
console.log(tsRegex.test("src/app.ts"));       // true ✅
console.log(tsRegex.test("src/comp.vue.ts"));  // false ❌

如果你的运行环境比较老旧(不支持ES2018的后瞻断言特性),可以用这个替代方案,逻辑是先排除所有.vue.ts结尾的文件,再匹配.ts结尾的:

/^(?!.*\.vue\.ts$).*\.ts$/

这个方案兼容性更好,不过写法上不如负向后瞻直观,优先推荐第一个正则哦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 12:24:43