javacript按照汉语拼音排序

Posted Oh,L.E.D

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javacript按照汉语拼音排序相关的知识,希望对你有一定的参考价值。

以前做了一个需求,要求按照人名的拼音进行排序,然后通过oracle的NLS_SORT参数在后台进行了排序,然后将结果返回给前端。现在想看看如果前端对字符串按照汉语拼音进行排序该怎么做呢?遂查找资料,将方法记录如下。

[‘张三‘,‘李四‘,‘王五‘].sort((a, b) => a.localeCompare(b, ‘zh-Hans-CN‘, {sensitivity: ‘accent‘}))

localeCompare函数的语法如下:

referenceStr.localeCompare(compareString[, locales[, options]])

参数
compareString用来比较的字符串
locales可选。 用来表示一种或多种语言或区域的一个符合 BCP 47 标准的字符串或一个字符串数组。

zh-Hans-CN (Chinese written using the Simplified script as used in mainland China)

返回一个数字表示是否 引用字符串 在排序中位于 比较字符串 的前面,后面,或者二者相同。

  • 当 引用字符串 在 比较字符串 前面时返回 -1
  • 当 引用字符串 在 比较字符串 后面时返回 1
  • 相同时返回 0

切勿依赖于 -1 或 1 这样特定的返回值。不同浏览器之间(以及不同浏览器版本之间)返回的正负数的值各有不同,因为W3C规范中只要求返回值是正值和负值,而没有规定具体的值。一些浏览器可能返回-2或2或其他一些负的、正的值。

参考

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String/localeCompare
https://segmentfault.com/q/1010000002546028




以上是关于javacript按照汉语拼音排序的主要内容,如果未能解决你的问题,请参考以下文章

TP5 按照汉字的拼音排序

List集合String字符串按照汉语拼音排序

sql语句-按照汉字拼音首字母排序

sql语句-按照汉字拼音首字母排序

javascript中文按照拼音首字母排序,如何实现?

C# 获取汉字拼音首字母