关于regex:JavaScript RegExp可识别特定的文件扩展名

JavaScript RegExp to recognize specific file extension

有没有办法编写一个JavaScript正则表达式来识别.ts文件扩展名:

1
"file.ts"

但是会失败的:

1
"file.vue.ts"

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

我尝试了很多没有成功的事情。

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


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

1
console.log(["file.ts","file.vue.ts"].map(s => /^[^.]+\.ts$/.test(s)));


正则表达式是^[^.]+.ts$

1
2
3
4
var x=/^[^.]+.ts$/;
console.log(x.test("file.ts"));
console.log(x.test("file.vue.ts"));
console.log(x.test("file.vue.ts1"));

说明:-

1
2
3
4
5
6
7
8
^[^.]+.ts$

^        ---> start of line
[^.]+    ---> match anything which is not '.' (match atleast one character)
^[^.]+   ---> match character until first '.' encounter
.ts      ---> match '.ts'
$        ---> end of line
.ts$     ---> string end with '.ts'


1
2
3
4
5
const regex = /(.*[^.vue]).ts/g;
abc.ts.ts Matches
abc.xyx.htm.ts Matches
abc.vue.ts Fails
xyz.abx.sxc.vue.ts Fails

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


这将适用于特殊字符除外。 允许使用大写字母,小写字母,数字,下划线和短划线:

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