Tom*_*lak 285
适用于以下所有输入的变体:
"file.name.with.dots.txt""file.txt""file"""nullundefined将会:
var re = /(?:\.([^.]+))?$/;
var ext = re.exec("file.name.with.dots.txt")[1]; // "txt"
var ext = re.exec("file.txt")[1]; // "txt"
var ext = re.exec("file")[1]; // undefined
var ext = re.exec("")[1]; // undefined
var ext = re.exec(null)[1]; // undefined
var ext = re.exec(undefined)[1]; // undefined
Run Code Online (Sandbox Code Playgroud)
说明
(?: # begin non-capturing group
\. # a dot
( # begin capturing group (captures the actual extension)
[^.]+ # anything except a dot, multiple times
) # end capturing group
)? # end non-capturing group, make it optional
$ # anchor to the end of the string
Guf*_*ffa 176
使用该lastIndexOf方法查找字符串中的最后一个句点,然后获取字符串的一部分:
var ext = fileName.substr(fileName.lastIndexOf('.') + 1);
Run Code Online (Sandbox Code Playgroud)
小智 154
我个人更喜欢拆分字符串.,只返回最后一个数组元素:)
var fileExt = filename.split('.').pop();
如果文件名中没有.,则返回整个字符串.
例子:
'some_value' => 'some_value'
'.htaccess' => 'htaccess'
'../images/something.cool.jpg' => 'jpg'
'http://www.w3schools.com/jsref/jsref_pop.asp' => 'asp'
'http://stackoverflow.com/questions/680929' => 'com/questions/680929'
Run Code Online (Sandbox Code Playgroud)
Rus*_*Cam 22
我建议使用lastIndexOf()而不是indexOf()
var myString = "this.is.my.file.txt"
alert(myString.substring(myString.lastIndexOf(".")+1))
Run Code Online (Sandbox Code Playgroud)
小智 13
最好使用以下内容; 一直工作!
var ext = fileName.split('.').pop();
Run Code Online (Sandbox Code Playgroud)
这将返回没有点前缀的扩展名.你可以加 "." + ext来检查您希望支持的扩展名!
var x = "1.txt";
alert (x.substring(x.indexOf(".")+1));
Run Code Online (Sandbox Code Playgroud)
注 1:如果文件名的格式为file.example.txt
,则此操作将不起作用
注 2:如果文件名的格式为 file,此操作将失败
| 归档时间: |
|
| 查看次数: |
178348 次 |
| 最近记录: |