JavaScript RegExp to recognize specific file extension
有没有办法编写一个JavaScript正则表达式来识别.ts文件扩展名:
1 | "file.ts" |
但是会失败的:
1 | "file.vue.ts" |
我需要的是,如果文件名以.vue.ts结尾,则不应将其作为.ts文件处理。
我尝试了很多没有成功的事情。
更新:它需要是一个正则表达式,因为这是我传递给函数的参数。
您可以查找前一个点,如果没有返回
1 | console.log(["file.ts","file.vue.ts"].map(s => /^[^.]+\.ts$/.test(s))); |
正则表达式是
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)$ |