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

一文搞懂JS字符串刪除最后一個(gè)字符

2025-01-13 09:01:14

引言

圖片7.jpg

在 JavaScript 編程的世界里,字符串操作可謂是家常便飯。你是否遇到過(guò)這樣的場(chǎng)景:從后端獲取到的文件路徑,末尾多了個(gè)冗余的斜杠;又或是精心拼接的字符串,在輸出展示時(shí),最后一個(gè)字符格格不入,影響了整體的美觀與格式。這時(shí)候,要是能精準(zhǔn)地刪掉字符串的最后一個(gè)字符,那這些小麻煩就能迎刃而解啦!今天,咱們就深入探討一下在 JS 中如何巧妙地去除字符串的 “小尾巴”。

常用方法大揭秘

1. substring () 方法

substring()可是處理字符串的一把好手。它的基本規(guī)則是從起始索引開(kāi)始,一直截取到指定索引,但要注意啦,指定索引對(duì)應(yīng)的字符是不包含在內(nèi)的哦。比如說(shuō),咱們有個(gè)字符串let str = "javascript";,要是想刪掉最后一個(gè)字符,就可以這么干:str = str.substring(0, str.length - 1);。這里,起始索引是0,表示從字符串開(kāi)頭開(kāi)始截取,結(jié)束索引設(shè)為str.length - 1,也就是字符串長(zhǎng)度減1,剛好把最后一個(gè)字符 “t” 排除在外,這時(shí)候str就變成了"javascript"。和它類(lèi)似的還有substr()和slice(),不過(guò)它們?cè)趨?shù)規(guī)則上各有千秋。substring()不接受負(fù)參數(shù),而且會(huì)自動(dòng)調(diào)整參數(shù)順序,始終保證起始索引小于等于結(jié)束索引,返回的是兩者之間的子串;而substr()第二個(gè)參數(shù)是截取的長(zhǎng)度,slice()則更靈活,支持負(fù)索引,能從字符串末尾往前數(shù),咱們后面會(huì)詳細(xì)說(shuō)。

2. substr () 方法

substr()的本事是從指定的起始位置開(kāi)始,提取指定長(zhǎng)度的字符。還是剛才那個(gè)str = "javascript";,用substr()來(lái)刪最后一個(gè)字符的話,代碼寫(xiě)成str = str.substr(0, str.length - 1);。它第一個(gè)參數(shù)0指明從開(kāi)頭起步,第二個(gè)參數(shù)str.length - 1確定了要截取的長(zhǎng)度,把最后一個(gè)字符 “t” 切掉,結(jié)果同樣是得到"javascript"。這里要注意個(gè)小細(xì)節(jié),當(dāng)substr()的第一個(gè)參數(shù)為負(fù)時(shí),它會(huì)從字符串末尾往前數(shù)相應(yīng)的位數(shù)作為起始位置,要是第二個(gè)參數(shù)省略了,那就會(huì)一直截取到字符串末尾,這特性在某些復(fù)雜的字符串處理場(chǎng)景下,說(shuō)不定就能派上大用場(chǎng)。

3. slice () 方法

slice()的玩法是按照索引范圍來(lái)提取字符串中的字符。面對(duì)咱們的老朋友str = "javascript";,刪除最后一個(gè)字符可以這樣操作:str = str.slice(0, -1);。這里起始索引0沒(méi)得說(shuō),從開(kāi)頭走起,結(jié)束索引-1就很巧妙了,在slice()的規(guī)則里,負(fù)索引表示從字符串末尾倒數(shù),-1正好指向倒數(shù)第二個(gè)字符,就順順利利地把最后一個(gè) “t” 給甩掉了,str搖身一變成為"javascript"。對(duì)比一下,slice()和substring()參數(shù)規(guī)則不同,前面提過(guò),slice()支持負(fù)索引,而且不會(huì)調(diào)整參數(shù)順序;和substr()比呢,substr()第二個(gè)參數(shù)側(cè)重長(zhǎng)度,slice()則是精確到結(jié)束索引位置,各有各的適用范圍,用對(duì)了就能讓代碼簡(jiǎn)潔又高效。

高級(jí)技巧拓展

1. 正則表達(dá)式 replace () 方法

要是遇到一些復(fù)雜的字符串,比如 “abc,def,ghi,”,只想把最后的逗號(hào)去掉,正則表達(dá)式搭配replace()方法就該登場(chǎng)了。咱們可以這么寫(xiě):str = str.replace(/,$/, '');。這里的正則表達(dá)式/,$/意思是匹配字符串末尾的逗號(hào),replace()方法就把匹配到的這個(gè)逗號(hào)替換成空字符串,巧妙地達(dá)到了目的。要是想刪除字符串最后一個(gè)任意字符呢,那就用str = str.replace(/.$/, '');,其中/.$/能精準(zhǔn)定位到最后一個(gè)字符,不管它是什么,都能一換了之。再深入一點(diǎn),如果字符串里有多個(gè)相同字符,只想處理最后一個(gè),比如 “aabbccb”,要?jiǎng)h掉最后一個(gè) “b”,可以用str = str.replace(/b(?=[^b]*$)/, '');,這里的正則b(?=[^b]*$)運(yùn)用了正向肯定預(yù)查,確保匹配的 “b” 后面跟著的是非 “b” 字符,直到字符串末尾,是不是很強(qiáng)大?正則表達(dá)式在處理這類(lèi)有復(fù)雜規(guī)則的字符串操作時(shí),優(yōu)勢(shì)盡顯,能讓代碼簡(jiǎn)潔又智能。

2. 結(jié)合數(shù)組操作實(shí)現(xiàn)

還有一種另辟蹊徑的方法,先把字符串轉(zhuǎn)成數(shù)組,利用數(shù)組的方法處理后再轉(zhuǎn)回字符串。像這樣:let arr = str.split(''); arr.pop(); str = arr.join('');。首先,split('')把字符串按每個(gè)字符拆分成數(shù)組元素,pop()方法移除數(shù)組的最后一個(gè)元素,也就是原字符串的最后一個(gè)字符,最后join('')把處理后的數(shù)組元素重新拼接成字符串。這種方式雖然步驟多了些,但在一些特殊場(chǎng)景下有妙用。比如說(shuō),當(dāng)你需要對(duì)字符串進(jìn)行鏈?zhǔn)讲僮鳎葎h尾字符,接著還要對(duì)剩下的字符串做一系列數(shù)組式的變換,像過(guò)濾、映射等,這時(shí)候轉(zhuǎn)成數(shù)組操作就會(huì)更順手,能把各種方法流暢地串聯(lián)起來(lái),寫(xiě)出簡(jiǎn)潔又易讀的代碼,為你的編程工具箱增添一件趁手的 “兵器”。

實(shí)戰(zhàn)案例分析

案例一:數(shù)據(jù)格式化處理

在日常開(kāi)發(fā)中,數(shù)據(jù)格式化是個(gè)常見(jiàn)活兒。比如說(shuō),咱們獲取到用戶輸入的電話號(hào)碼 “13800138000”,要是想按照 “138 0013 8000” 這種格式展示,在拼接空格的過(guò)程中,可能就會(huì)不小心多一個(gè)空格在末尾,這時(shí)候就需要?jiǎng)h掉多余的字符。運(yùn)行后就能得到正確格式的電話號(hào)碼。同樣的道理,對(duì)于身份證號(hào)的處理,如果要隱藏中間幾位做脫敏展示,像 “32010619800101123X” 變成 “320106********123X”,在替換字符操作結(jié)束后,萬(wàn)一末尾多了個(gè)占位符之類(lèi)的,也能用咱們前面講的方法迅速清理。這些操作在數(shù)據(jù)展示層面,能極大提升用戶體驗(yàn),讓信息看起來(lái)規(guī)整、專(zhuān)業(yè),避免因小瑕疵影響整體觀感。

案例二:URL 路徑處理

在網(wǎng)頁(yè)開(kāi)發(fā)領(lǐng)域,URL 的處理更是頻繁。比如說(shuō),有個(gè)動(dòng)態(tài)生成的 URL 路徑 “https://example.com/products/list/”,最后的斜杠在某些場(chǎng)景下可能就是多余的,會(huì)干擾前端路由的精準(zhǔn)匹配。經(jīng)過(guò)這么一處理,URL 就變得 “清爽” 了,能確保頁(yè)面跳轉(zhuǎn)、資源加載等環(huán)節(jié)準(zhǔn)確無(wú)誤。再比如,從后端獲取到的圖片資源路徑 “/images/logo.png/”,多出來(lái)的斜杠可能導(dǎo)致圖片加載失敗,用咱們學(xué)的replace()方法結(jié)合正則表達(dá)式/\/$/(匹配末尾的斜杠)來(lái)處理,就能輕松解決問(wèn)題,保障網(wǎng)頁(yè)流暢運(yùn)行,讓用戶毫無(wú)阻礙地瀏覽頁(yè)面內(nèi)容。

注意事項(xiàng)與兼容性考量

雖說(shuō)咱們講的這些方法在大多數(shù)現(xiàn)代瀏覽器環(huán)境下都運(yùn)行得穩(wěn)穩(wěn)當(dāng)當(dāng),但也得留個(gè)心眼兒。不同版本的 JavaScript 引擎,對(duì)字符串方法的細(xì)微處理可能存在差異。像 IE 瀏覽器的低版本(IE8 及以下),對(duì) ES6 新增的一些字符串特性支持就不太友好,要是用到了模板字符串搭配復(fù)雜操作去刪字符,在這些老舊瀏覽器上可能就 “翻車(chē)” 了。還有啊,當(dāng)你處理空字符串的時(shí)候,像let emptyStr = ""; emptyStr = emptyStr.substring(0, -1);,這就會(huì)返回一個(gè)空字符串,而不會(huì)報(bào)錯(cuò),但要是用substr()類(lèi)似操作,有些瀏覽器可能就會(huì)給出不一樣的結(jié)果,甚至報(bào)錯(cuò),所以代碼里得提前預(yù)判這種邊界情況,加上適當(dāng)?shù)臈l件判斷,比如if (str.length > 0) {... },防止程序莫名其妙地崩掉。另外,要是字符串里有特殊字符,像是轉(zhuǎn)義字符\n(換行符)、\t(制表符),不同方法的處理也有講究,得充分測(cè)試,確保刪字符后字符串的邏輯意義不被破壞,這樣咱們寫(xiě)的代碼才能經(jīng)得起各種復(fù)雜場(chǎng)景的 “考驗(yàn)”,在不同平臺(tái)都能順暢運(yùn)行。

總結(jié)

好啦,今天咱們把 JavaScript 里刪除字符串最后一個(gè)字符的方法 “一網(wǎng)打盡” 啦!從基礎(chǔ)的substring()、substr()、slice(),到進(jìn)階的正則表達(dá)式搭配replace(),還有巧用數(shù)組轉(zhuǎn)換的妙招,各有千秋。在實(shí)際開(kāi)發(fā)中,面對(duì)不同的業(yè)務(wù)場(chǎng)景,咱們得權(quán)衡利弊,選最順手、最高效的方法。像是簡(jiǎn)單的固定格式字符串處理,基礎(chǔ)方法可能三兩行代碼就搞定;遇到復(fù)雜規(guī)則、模糊匹配需求,正則表達(dá)式就能大顯身手。希望大家看完這篇文章后,別光紙上談兵,趕緊打開(kāi)編輯器動(dòng)手試試,把這些技巧化為代碼肌肉記憶。后續(xù)我們還會(huì)深挖更多 JavaScript 字符串操作的 “寶藏” 知識(shí),帶你在編程路上一路飛馳,記得持續(xù)關(guān)注,咱們下期再見(jiàn)!


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

服務(wù)熱線

15879069746

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