好吊妞人成视频在线观看,中文字幕一区二区人妻性色,亚洲日本在线电影,夜夜未满十八勿进的爽爽影院,在线观看国产成人av天堂

一文搞懂JS字符串截取最后一個(gè)字符

2024-12-28 10:12:22

為啥要截取最后一個(gè)字符

圖片8.jpg

在日常的 JavaScript 編程開(kāi)發(fā)過(guò)程中,咱們經(jīng)常會(huì)碰到需要對(duì)字符串進(jìn)行各種 “手術(shù)” 的情況。比如說(shuō),要從文件路徑里提取出最后的文件擴(kuò)展名,像 “/user/documents/report.pdf”,得把最后的 “.pdf” 揪出來(lái),才知道這是個(gè)啥類型的文件;再或者處理日期格式的字符串,像 “2024-08-15”,想單獨(dú)拿出最后的 “15” 來(lái)做進(jìn)一步運(yùn)算。還有在數(shù)據(jù)驗(yàn)證環(huán)節(jié),判斷用戶輸入的驗(yàn)證碼,往往也得抓取最后一位字符來(lái)核對(duì)??梢哉f(shuō),精準(zhǔn)截取字符串的最后一個(gè)字符,在很多業(yè)務(wù)場(chǎng)景里那都是剛需,掌握了這招,代碼寫(xiě)起來(lái)就能更得心應(yīng)手,處理數(shù)據(jù)也會(huì)更高效。

常用方法大揭秘

charAt () 方法輕松搞定

JavaScript 里的 charAt() 方法就像是一把精準(zhǔn)的小鑷子,能幫咱們從字符串里穩(wěn)穩(wěn)地夾出指定位置的字符。它的語(yǔ)法特別簡(jiǎn)潔:str.charAt(index),這里的 str 就是咱們要操作的字符串,而 index 呢,就是字符在字符串里的位置索引。注意啦,在 JavaScript 的世界里,索引是從 0 開(kāi)始計(jì)數(shù)的,這就好比排隊(duì),第一個(gè)人是 0 號(hào)。比如說(shuō),咱們有個(gè)字符串 let str = "JavaScript妙妙屋";,要是想把最后一個(gè)字符 “屋” 揪出來(lái),那就可以用 str.charAt(str.length - 1)。這里的 str.length 能算出字符串的總長(zhǎng)度,減去 1 后,剛好就是最后一個(gè)字符的索引位置。在這個(gè)例子里,str.length 是 9,減去 1 就是 8,正好對(duì)應(yīng) “屋” 的位置,一運(yùn)行,就能精準(zhǔn)拿到咱們想要的最后一個(gè)字符啦。

substr () 方法來(lái)助力

substr() 方法則像是一把靈活的剪刀,能從字符串里剪出咱們想要的片段。它的語(yǔ)法是 str.substr(start, length),start 指明了開(kāi)始截取的位置索引,length 就是要截取的字符個(gè)數(shù)。要是省略 length,那它就會(huì)一路剪到字符串末尾。舉個(gè)例子,還是剛才那個(gè)字符串 let str = "JavaScript妙妙屋";,用 str.substr(str.length - 1, 1) 就能剪下最后一個(gè)字符。先看 str.length - 1 找到了起始位置,后面的 1 表示只取 1 個(gè)字符,如此一來(lái),最后一個(gè) “屋” 字就到手了。不過(guò)得留意,在一些老版本的瀏覽器,像是 IE 4 里,substr() 方法對(duì)負(fù)數(shù)參數(shù)的處理有點(diǎn)抽風(fēng),可能得不到咱們想要的結(jié)果。所以要是考慮兼容性,可得多做些測(cè)試,必要時(shí)換用更穩(wěn)妥的方法。

split () 方法另辟蹊徑

split() 方法就像是個(gè)神奇的分割器,能按咱們指定的規(guī)則把字符串拆分成一個(gè)個(gè)小片段,存到數(shù)組里。語(yǔ)法是 str.split(separator),separator 就是分割字符串的依據(jù)。要是不傳這個(gè)參數(shù),整個(gè)字符串就會(huì)被拆成單個(gè)字符組成的數(shù)組。就拿字符串 let str = "123456"; 來(lái)說(shuō),先 let spstr = str.split(""); 這么一操作,字符串就變成了 ["1", "2", "3", "4", "5", "6"] 這樣的數(shù)組。這時(shí)候,數(shù)組的最后一個(gè)元素 spstr[spstr.length - 1] 自然就是原字符串的最后一個(gè)字符啦。這種方法在處理一些有規(guī)律的字符串,或是需要批量處理字符串里的字符時(shí),特別好用,代碼寫(xiě)起來(lái)也清晰易懂。

正則表達(dá)式顯神通

當(dāng)遇到一些復(fù)雜的字符串截取需求,正則表達(dá)式就該閃亮登場(chǎng)啦。它就像是個(gè)擁有超級(jí)搜索能力的偵探,能按照咱們?cè)O(shè)定的復(fù)雜模式在字符串里精準(zhǔn)定位。比如說(shuō),要從一串混雜著各種字符的文本里找出最后一個(gè)數(shù)字,正則表達(dá)式就能輕松搞定。語(yǔ)法上,像 let regex = /\d$/; 這就是個(gè)簡(jiǎn)單的正則表達(dá)式,\d 表示匹配數(shù)字,$ 表示匹配字符串結(jié)尾。要是有個(gè)字符串 let str = "abc123def45";,用 str.match(regex)[0] 就能把最后的 “5” 找出來(lái)。在截取最后一個(gè)字符時(shí),只要根據(jù)字符的特征設(shè)計(jì)好正則表達(dá)式,就能應(yīng)對(duì)各種千奇百怪的字符串格式,哪怕字符串里亂糟糟的,也能一擊即中,拿到咱們心心念念的最后一個(gè)字符。

代碼實(shí)戰(zhàn)演練場(chǎng)

實(shí)戰(zhàn)一:提取文件名后綴

在處理文件上傳功能時(shí),常常需要從文件路徑里提取出文件的后綴名,來(lái)判斷文件類型是否合法在這段代碼里,首先通過(guò) lastIndexOf(".") 精準(zhǔn)定位到文件路徑中最后一個(gè)點(diǎn)號(hào)的位置,這個(gè)點(diǎn)號(hào)通常是文件名和后綴名的分隔標(biāo)志。然后利用 substr() 方法,以點(diǎn)號(hào)位置作為起始索引,fileUrl.length - dotIndex 計(jì)算出后綴名的字符長(zhǎng)度作為截取長(zhǎng)度,如此就能準(zhǔn)確無(wú)誤地提取出文件的后綴名,方便后續(xù)根據(jù)后綴判斷文件類型,像是圖片(.jpg、.png 等)、文檔(.docx、.pdf 等)。

實(shí)戰(zhàn)二:格式化數(shù)字字符串

在電商項(xiàng)目里展示商品價(jià)格,或者金融數(shù)據(jù)報(bào)表呈現(xiàn)金額數(shù)據(jù)時(shí),需要把數(shù)字字符串格式化成帶逗號(hào)分隔的形式,讓數(shù)字更易讀。這里運(yùn)用了 slice(-3) 巧妙地每次從數(shù)字字符串末尾截取三位數(shù)字,再把逗號(hào)和截取的三位數(shù)字拼接到結(jié)果字符串前面。通過(guò)循環(huán)處理,直到原數(shù)字字符串長(zhǎng)度不超過(guò) 3 位,最終得到格式化后易讀的數(shù)字字符串,極大提升了數(shù)字展示的友好度,讓用戶能一眼看清大額數(shù)字的量級(jí)。

實(shí)戰(zhàn)三:操作文本內(nèi)容

在文章排版系統(tǒng)里,需要對(duì)用戶輸入的段落文本進(jìn)行處理,比如去掉每行末尾多余的換行符。假設(shè)文本存儲(chǔ)在一個(gè)數(shù)組里,每行是一個(gè)元素。在循環(huán)遍歷文本數(shù)組時(shí),通過(guò) charAt(textArray[i].length - 1) 判斷每行文本的最后一個(gè)字符是否為換行符 \n,若是,則利用 substr(0, textArray[i].length - 1) 精準(zhǔn)截掉換行符,讓文本排版更整潔,避免出現(xiàn)多余空行,提升閱讀體驗(yàn),無(wú)論是在網(wǎng)頁(yè)文章展示還是文檔編輯場(chǎng)景中都很實(shí)用。

方法對(duì)比與選擇

這幾種截取字符串最后一個(gè)字符的方法,各有千秋,就像不同的工具,在不同場(chǎng)景下能發(fā)揮最大效能。從性能方面來(lái)說(shuō),charAt() 通常是最快的,因?yàn)樗墓δ軉我患兇?,就是按索引取字符,?jì)算量小。substr() 和 slice() 稍復(fù)雜些,涉及到起始位置和長(zhǎng)度的計(jì)算,不過(guò)在現(xiàn)代瀏覽器里,這點(diǎn)性能損耗基本可以忽略不計(jì)。但要是在一些性能要求極高,像處理海量數(shù)據(jù)的場(chǎng)景下,charAt() 的優(yōu)勢(shì)就會(huì)凸顯出來(lái)??勺x性上,charAt() 和 substr() 比較直觀,代碼邏輯一目了然,新手看一眼就能大概明白在干啥。split() 把字符串轉(zhuǎn)數(shù)組再取值,也還清晰,不過(guò)代碼行數(shù)相對(duì)多一點(diǎn)。正則表達(dá)式呢,要是不熟悉正則語(yǔ)法的開(kāi)發(fā)者,乍一看就跟看天書(shū)似的,維護(hù)起來(lái)也費(fèi)勁,可要是處理復(fù)雜規(guī)則,它又最簡(jiǎn)潔強(qiáng)大。兼容性這塊,charAt() 和 substring() 在所有主流瀏覽器,甚至古老的 IE 瀏覽器里都穩(wěn)如泰山。substr() 在老版本 IE(像 IE 4)有參數(shù)負(fù)值處理的坑,要是項(xiàng)目需要兼容這類老古董瀏覽器,就得慎之又慎。split() 和正則表達(dá)式在現(xiàn)代瀏覽器都沒(méi)問(wèn)題,可要是碰到上古時(shí)期的瀏覽器,說(shuō)不定就會(huì)出亂子。所以,要是追求極致性能,數(shù)據(jù)處理又簡(jiǎn)單,charAt() 是首選;新手入門或者代碼可讀性優(yōu)先,charAt() 、substr() 都不錯(cuò);要處理復(fù)雜格式,兼容現(xiàn)代瀏覽器,正則表達(dá)式能大顯身手;要是項(xiàng)目還得照顧老版本瀏覽器,charAt() 結(jié)合其他兼容性好的方法,多做點(diǎn)判斷和兼容處理,才能萬(wàn)無(wú)一失。

總結(jié)與拓展

好啦,經(jīng)過(guò)這一趟深入探究 JavaScript 字符串截取最后一個(gè)字符的奇妙之旅,咱們可是收獲滿滿!知道了 charAt() 的精準(zhǔn)定位、substr() 的靈活裁剪、split() 的巧妙分割,還有正則表達(dá)式的強(qiáng)大搜索功能,這些方法各有神通,能應(yīng)對(duì)各式各樣的開(kāi)發(fā)難題。大家在日常編碼中,一定要多動(dòng)手試試這些方法,根據(jù)實(shí)際需求挑出最稱手的 “兵器”。隨著學(xué)習(xí)的深入,你們還會(huì)碰到更多字符串操作的酷炫技巧,像是字符串的拼接、替換、格式化等等,每一個(gè)都暗藏玄機(jī),能幫咱們把代碼寫(xiě)得更溜,讓程序跑得更順。希望大家保持好奇心,持續(xù)探索 JavaScript 的精彩世界,未來(lái)都能成長(zhǎng)為代碼大神,寫(xiě)出超厲害的程序!


聲明:此篇為墨韻科技原創(chuàng)文章,轉(zhuǎn)載請(qǐng)標(biāo)明出處鏈接: http://www.nlzm.net.cn/news/4620.html
  • 網(wǎng)站建設(shè)
  • SEO
  • 信息流
  • 短視頻
合作伙伴
在線留言
服務(wù)熱線

服務(wù)熱線

15879069746

微信咨詢
返回頂部
在線留言