利用JavaScript對(duì)中文(漢字)進(jìn)行排序?qū)嵗斀?/h1>

前言

成都創(chuàng)新互聯(lián)公司于2013年成立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元新蔡做網(wǎng)站,已為上家服務(wù),為新蔡各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18980820575

在網(wǎng)頁(yè)上展示列表時(shí)經(jīng)常需要對(duì)列表進(jìn)行排序:按照修改/訪問(wèn)時(shí)間排序、按照地區(qū)、按照名稱排序。

對(duì)于中文列表按照名稱排序就是按照拼音排序,不能簡(jiǎn)單通過(guò)字符串比較—— ‘a(chǎn)' > ‘b'——這種方式來(lái)實(shí)現(xiàn)。

比如比較 ‘北京' vs ‘上海',實(shí)際是比較 ‘běijīng' vs ‘shànghǎi';比較 ‘北京' vs ‘背景',實(shí)際是比較 ‘běijīng' vs ‘bèijǐng'。

一般需要獲取到字符串的拼音,再比較各自的拼音。

實(shí)現(xiàn)方法

JavaScript 提供本地化文字排序,比如對(duì)中文按照拼音排序,不需要程序顯示比較字符串拼音。

String.prototype.localeCompare 在不考慮多音字的前提下,基本可以完美實(shí)現(xiàn)按照拼音排序。

在沒(méi)有出現(xiàn)意外的情況下,各個(gè)支持 localeCompare 的瀏覽器都很正常。最近將 Chrome 更新到 58.0.3029.110,突然發(fā)現(xiàn)中文排序不正常。

// 正常應(yīng)該返回 1, 拼音 jia 在前, kai 在后
'開(kāi)'.localeCompare('駕');
// 得到
-1;
 
// Chrome 58.0.3029.110 下返回 -1, 其他瀏覽器正常
 
// 確認(rèn)之后是 localeCompare 需要明確指定 locales 參數(shù)
'開(kāi)'.localeCompare('駕', 'zh');
// 得到
1

利用JavaScript對(duì)中文(漢字)進(jìn)行排序?qū)嵗斀?></p><p>在 Chrome 下傳遞 locales 參數(shù)才能獲得正常預(yù)期結(jié)果</p><p><img src=利用JavaScript對(duì)中文(漢字)進(jìn)行排序?qū)嵗斀?/a>
網(wǎng)站URL:http://muchs.cn/article48/gdsgep.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊(cè)、品牌網(wǎng)站設(shè)計(jì)、網(wǎng)站內(nèi)鏈、營(yíng)銷型網(wǎng)站建設(shè)品牌網(wǎng)站制作、云服務(wù)器

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作