js截取文件名不帶后綴

利用正則表達(dá)式是匹配后綴名

一般文件后綴都為.xxx,也就是說從尾部匹配的話首先是字母,接著應(yīng)該有一個(gè).
那么我們就開始寫正則表達(dá)式
利用在線工具 方便我們編寫邊測試
一般都是小寫字母,所以我們用[a-z],個(gè)數(shù)一個(gè)是1到無限{1,},然后從尾部匹配開始$
所以我們從后面匹配一串字母的正則表達(dá)式長這樣[a-z]{0,}

測試一下

我們還差一個(gè).,所以我們再加上去
最終正則表達(dá)式是這樣的\.{1}[a-z]{1,}$,那個(gè)反斜杠是代表轉(zhuǎn)義,我記得是這樣的

成功匹配到了

那我們來實(shí)際測試一下

var pattern = /\.{1}[a-z]{1,}$/,  // 用js的話用‘/’斜杠去標(biāo)識(shí)正則表達(dá)式
    str = 'JSON必知必會(huì).pdf';
console.log(pattern.test(str));  // true

我要實(shí)現(xiàn)的是一串帶后綴的文件名,而我只要文件名不要后綴

我們上面的例子用的是test()方法,它返回值是布爾值。表示字符串是否匹配成功。
所以不適用我這個(gè)需求,我想肯定有其它方法。
我查到test()方法是RegExp 對象的,該對象還有exec()方法。
exec()方法返回一個(gè)數(shù)組,其中存放匹配的結(jié)果。如果未找到匹配,則返回值為 null。
那我們把上面的例子的test()方法改為exec()方法

得到的是這個(gè)結(jié)果

那我們就可以知道,返回值這個(gè)數(shù)組[0]下標(biāo)是匹配到的文本
index是匹配到的文本在匹配字符串里頭的下標(biāo),反正就是上面那個(gè)小數(shù)點(diǎn)的位置
而我要拿的是“JSON必知必會(huì)”這個(gè),知道下標(biāo)那就可以用字符串截取slice()方法

最終代碼實(shí)現(xiàn)

function splitFileName(text) {
    var pattern = /\.{1}[a-z]{1,}$/;
    if (pattern.exec(text) !== null) {
        return (text.slice(0, pattern.exec(text).index));
    } else {
        return text;
    }
}
最終效果
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,540評論 19 139
  • 初衷:看了很多視頻、文章,最后卻通通忘記了,別人的知識(shí)依舊是別人的,自己卻什么都沒獲得。此系列文章旨在加深自己的印...
    DCbryant閱讀 4,244評論 0 20
  • 第5章 引用類型(返回首頁) 本章內(nèi)容 使用對象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類型 使用基本類型...
    大學(xué)一百閱讀 3,674評論 0 4
  • 9.19--9.23 第7章 正則表達(dá)式 正則表達(dá)式是一個(gè)拆分字符串并查詢相關(guān)信息的過程。 推薦練習(xí)網(wǎng)站: js ...
    如201608閱讀 1,130評論 0 4
  • 這一池子的荷花夠我反復(fù)地看一個(gè)夏天了 但是最好的不是熱天也不是夜晚 而是暴雨過后氣溫驟降的晴日里 不光是配色也不光...
    伐伐Eve閱讀 533評論 4 4

友情鏈接更多精彩內(nèi)容