UNPKG

wsemi

Version:

A support package for web developer.

127 lines (116 loc) 2.56 kB
import join from 'lodash/join' import split from 'lodash/split' import size from 'lodash/size' import dropRight from 'lodash/dropRight' import isestr from './isestr.mjs' import getFileName from './getFileName.mjs' /** * 由檔案位置取得檔案的不含副檔名名稱 * * Unit Test: {@link https://github.com/yuda-lyu/wsemi/blob/master/test/getFileTrueName.test.mjs Github} * @memberOf wsemi * @param {string} str 輸入檔案位置字串 * @returns {string} 檔案不含副檔名的名稱 * @example * * let c * * c = 'C:\\temp\\myfile.html' * console.log(getFileTrueName(c)) * // => myfile * * c = 'C:\\temp\\myfile.txt.html' * console.log(getFileTrueName(c)) * // => myfile.txt * * c = 'C:\\temp\\myfile' * console.log(getFileTrueName(c)) * // => myfile * * c = 'C:\\temp\\\\temp\\\\myfile.txt.html' * console.log(getFileTrueName(c)) * // => myfile.txt * * c = 'C:\\temp\\' * console.log(getFileTrueName(c)) * // => temp * * c = 'C:\\temp' * console.log(getFileTrueName(c)) * // => temp * * c = 'C:\\' * console.log(getFileTrueName(c)) * // => C:\\ * * c = 'C:' * console.log(getFileTrueName(c)) * // => C:\\ * * c = '/tmp/myfile.html' * console.log(getFileTrueName(c)) * // => myfile * * c = '/tmp/myfile.txt.html' * console.log(getFileTrueName(c)) * // => myfile.txt * * c = '/tmp/myfile' * console.log(getFileTrueName(c)) * // => myfile * * c = '//tmp////tmp//myfile.txt.html' * console.log(getFileTrueName(c)) * // => myfile.txt * * c = '/tmp/' * console.log(getFileTrueName(c)) * // => tmp * * c = '/tmp' * console.log(getFileTrueName(c)) * // => tmp * * c = '/' * console.log(getFileTrueName(c)) * // => / * * c = '/foo/bar/baz/asdf/quux.html' * console.log(getFileTrueName(c)) * // => quux * * c = '/foo/bar/baz/asdf/quux.txt.html' * console.log(getFileTrueName(c)) * // => quux.txt * * c = '/foo/bar/baz/asdf/quux' * console.log(getFileTrueName(c)) * // => quux * * c = '' * console.log(getFileTrueName(c)) * // => [empty string] * */ function getFileTrueName(str) { //check if (!isestr(str)) { return '' } //getFileName let name = getFileName(str) //s let s = split(name, '.') //check if (size(s) <= 1) { return name } let r = '' try { s = dropRight(s) r = join(s, '.') } catch (err) {} return r } export default getFileTrueName