用于识别特定文件扩展名的JavaScript RegExp

用于识别特定文件扩展名的JavaScript RegExp,javascript,regex,Javascript,Regex,有没有一种方法可以编写JavaScript正则表达式来识别.ts文件扩展名: "file.ts" 但在这方面会失败: "file.vue.ts" 我需要的是,如果文件名以.vue.ts结尾,则不应将其作为.ts文件处理 我尝试了很多事情,但都没有成功 更新:它需要是一个正则表达式,因为这就是我传递给函数参数的内容。您可以查找前一个点,如果不返回true console.log([“file.ts”,“file.vue.ts”].map(s=>/^[^.]+\.ts$/.test))的正则

有没有一种方法可以编写JavaScript正则表达式来识别.ts文件扩展名:

"file.ts" 
但在这方面会失败:

"file.vue.ts"
我需要的是,如果文件名以.vue.ts结尾,则不应将其作为.ts文件处理

我尝试了很多事情,但都没有成功


更新:它需要是一个正则表达式,因为这就是我传递给函数参数的内容。

您可以查找前一个点,如果不返回
true


console.log([“file.ts”,“file.vue.ts”].map(s=>/^[^.]+\.ts$/.test))的正则表达式是
^[^.]+.ts$

var x=/^[^.]+.ts$/;
log(x.test(“file.ts”);
log(x.test(“file.vue.ts”);

log(x.test(“file.vue.ts1”)除特殊字符外,这将起作用。将允许大写字母、小写字母、数字、下划线和破折号:

^[a-zA-Z0-9\_\-]+(\.ts)$

Javascript正则表达式应该是这个。

它必须是正则表达式吗?/(.*)。ts$/这应该检查最后3个字符是否是“.ts”可能与@NinaScholz的可能重复项是的,我需要它是一个正则表达式。我需要它与“file.vue.ts”不匹配。在这种情况下,您的表达式会导致匹配。“file.ts”不会通过,因为“file”中的“e”,我猜。
const regex = /(.*[^.vue]).ts/g;
abc.ts.ts Matches
abc.xyx.htm.ts Matches
abc.vue.ts Fails
xyz.abx.sxc.vue.ts Fails