摘要: 很多情況下,我們需要控制長(zhǎng)標(biāo)題的顯示字?jǐn)?shù)。在客戶端用JavaScript控制顯示最大字?jǐn)?shù)后,由于js把任何字符都當(dāng)作1個(gè)長(zhǎng)度來(lái)處理,由此導(dǎo)致全角和半角字符顯示的實(shí)際長(zhǎng)度不同。
例如我們?cè)O(shè)置某個(gè)文章列表頁(yè)面所有的文章標(biāo)題最長(zhǎng)顯示10個(gè)字符。那么如下的題目:
這篇文章是測(cè)試標(biāo)題長(zhǎng)度顯示的文章
I love my country.I love all of you.
處理后,將分別顯示為:
這篇文章是測(cè)試標(biāo)題長(zhǎng)
I love my (注意最后還有一個(gè)空格)
假設(shè)我們是按照中文的寬度來(lái)確定10個(gè)字符這個(gè)標(biāo)準(zhǔn)的,那么當(dāng)標(biāo)題是英文等半角字符時(shí),顯然太短了。反過(guò)來(lái),如果我們按照英文等半角字符來(lái)確定顯示字符數(shù)量標(biāo)準(zhǔn),那么如果題目是中文的時(shí)候,又很容易出現(xiàn)自動(dòng)換行等我們不希望出現(xiàn)的結(jié)果。
本文嘗試以一種笨拙的辦法處理這個(gè)問(wèn)題。即使用js檢查字符串中的每一個(gè)字符,如果發(fā)現(xiàn)有兩個(gè)(注意不一定相連)的半角字符,那么就將顯示長(zhǎng)度標(biāo)準(zhǔn)加1。
閱讀全文