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

原文地址:https://www.cnblogs.com/ZiYangZhou/p/8407422.html

时间: 2024-10-09 20:07:13

javacript按照汉语拼音排序的相关文章

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

public static void main(String[] args) { List<Map<String, Object>> mapList = new ArrayList<Map<String,Object>>(); Map<String, Object> m1 = new HashMap<String,Object>(); m1.put("name", "AC"); Map<S

ExtJS4.2学习(四)Grid表格中文排序问题(转)

鸣谢:http://www.shuyangyang.com.cn/jishuliangongfang/qianduanjishu/2013-11-07/173.html ----------------------------------------------------------------------------------------- 如果不进行任何排序的设置,Extjs有默认的排序. 下面的代码没有对Grid进行排序的设置: /** * Grid * 此js对Grid的某列进行了排

[数据库] Oracle单表查询总数及百分比和数据横向纵向连接

这是最近项目关于SQL语句的,本文简单记录并总结以下几个知识点: 1.如何统计一张表中某个字段的总数,如不同"专业"的学生数及所占百分比: 2.如何联系另一张表进行查询某个字段的总数及百分比: 3.简单介绍decode防止分母为0和trunc保留小数位数等函数: 4.通常复杂的SQL语句会涉及到查询结果横向连接和纵向连接,这里进行介绍. 最近买了本<Oracle查询优化改写技巧与案例·有教无类 落落>,推荐大家也阅读下.后面我也会补充一些相关数据的知识,希望对大家有所帮助吧

在vc中实现获取汉字拼音的首字母

在vc中实现获取汉字拼音的首字母 void GetFirstLetter(CString strName, CString& strFirstLetter){    TBYTE ucHigh, ucLow;    int  nCode;    CString strRet;    strFirstLetter.Empty();    for (int i=0; i<strName.GetLength(); i++)    {        if ( (TBYTE)strName[i] <

32、TreeSet简介

使用TreeSet存储Integer对象 TreeSet的特点是可以对存放进去的元素进行排序. package com.sutaoyu.list; import java.util.TreeSet; public class list_test_18 { public static void main(String[] args) { TreeSet<Integer> ts = new TreeSet<>(); ts.add(3); ts.add(3); ts.add(3); ts

Java实现按汉语拼音的排序

public class sortByPinyin { public static void main(String[] args) { String[] arr = { "刘刘", "李飞", "王五", "老三", "贝贝", "啊三" }; Collator cmp = Collator.getInstance(java.util.Locale.CHINA); Arrays.sor

IOS-汉字排序

* 在IOS开发过程中,排序是我们经常遇到的问题,那么如何进行排序呢? * 在英文状态下,系统中有直接可以调用的方法.    例如:对数组[sss, aaa, bbb, ppp]进行排序,我们可以直接使用系统方法. 1 NSMutableArray * array = [[NSMutableArray alloc]initWithObjects:@"sss",@"aaa",@"bbb",@"ppp",nil]; 2 array

浅析pinyin4j源码 简单利用pinyin4j对中文字符进行自然排序

pinyin4j项目  官网地址 http://pinyin4j.sourceforge.net/ 我们先把资源下载下来,连同源码和jar包一起放入工程.如下图: 接下来在demo包下,我们写一个测试类,简单使用pinyin4j对中文字符进行自然排序 新建一个ConvertTest.java package demo; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; im

IOS中文排序学习

前言: 最近有中文排序的需要,发现系统没有提供中文排序的方法,于是参考学习了网上前辈的代码实现了中文排序功能,本文记录的就是学习实现中文排序的过程. 实现英文排序 系统提供了英文排序的方法.写了一个逆的数组,排序后正序: // 数组英文begin NSMutableArray *dataArray=[NSMutableArray array]; [dataArray addObjectsFromArray:@[@"d",@"c",@"b",@&q