高效的获取文件的扩展名
一: 正则表达式
var file1 = 'filename.xsl';var file2 = '.hidefile';var file3 = 'filename';var file4 = 'filename.xx.apk';function getFileExtension(filename) { return /[.]/.exec(filename) ? /[^.]+$/.exec(filename)[0] : undefined;}console.log('>>>:', getFileExtension(file1)); // >>>: xslconsole.log('>>>:', getFileExtension(file2)); // >>>: hidefileconsole.log('>>>:', getFileExtension(file3)); // >>>: undefineconsole.log('>>>:', getFileExtension(file4)); // >>>: apk二: 正则表达式
var file1 = 'filename.xsl';var file2 = '.hidefile';var file3 = 'filename';var file4 = 'filename.xx.apk';function getFileExtension(filename) { return filename.split('.').pop();}console.log('>>>:', getFileExtension(file1)); // >>>: xslconsole.log('>>>:', getFileExtension(file2)); // >>>: hidefileconsole.log('>>>:', getFileExtension(file3)); // >>>: filenameconsole.log('>>>:', getFileExtension(file4)); // >>>: apk四: String的slice、lastIndexOf方法
var file1 = 'filename.xsl';var file2 = '.hidefile';var file3 = 'filename';var file4 = 'filename.xx.apk';function getFileExtension(filename) { return filename.slice(((filename.lastIndexOf('.') - 1) >>> 0) + 2);}console.log('>>>:', getFileExtension(file1)); // >>>: xslconsole.log('>>>:', getFileExtension(file2)); // >>>: console.log('>>>:', getFileExtension(file3)); // >>>: console.log('>>>:', getFileExtension(file4)); // >>>: apk这是如何实现的呢?
- String.lastIndexOf() 方法返回指定值(本例中的
'.')在调用该方法的字符串中最后出现的位置,假如没找到则返回 -1。 - 对于
'filename'和'.hiddenfile',lastIndexOf的返回值分别为0和-1无符号右移操作符(»>) 将-1转换为4294967295,将-2转换为4294967294,这个方法可以保证边缘情况时文件名不变。 - String.prototype.slice() 从上面计算的索引处提取文件的扩展名。假如索引比文件名的长度大,结果为
""。
说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 高效的获取文件的扩展名
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 高效的获取文件的扩展名