react-native按照汉字首字母排序

问题讨论详情:https://github.com/facebook/react-native/issues/12597

问题描述:

JS中有一个String的内置函数:String.prototype.localeCompare(),返回一个数字来指示一个参考字符串是否在排序顺序前面或之后或与给定字符串相同。

1 a.nickName.localeCompare(b.nickName, ‘zh-Hans-CN‘, {sensitivity: ‘accent‘})

在react-native环境下,此函数的返回值在IOS上正常,在Android的debug模式下正常,在Android的release模式下有误。问题原因是Android的JavaScriptCore引擎的版本导致的问题。

解决方案:

推荐字典:https://github.com/sxei/pinyinjs

用字典先获取汉字首字母,再用localeCompare按照英文首字母排序。

示例用法:

1 require(‘../api/pinyinJs/dict/pinyin_dict_firstletter‘)
2 require(‘../api/pinyinJs/pinyinUtil‘)
3
4 ...
5 lockData[0].sort((a, b) => {
6   return pinyinUtil.getFirstLetter(a.nickName).localeCompare(pinyinUtil.getFirstLetter(b.nickName))
7 })
8 ...

原文地址:https://www.cnblogs.com/halao/p/12019075.html

时间: 2024-12-26 20:58:12

react-native按照汉字首字母排序的相关文章

iOS中获取本地通讯录联系人以及汉字首字母排序

/***  加载本地联系人*/ - (void)loadLocalContacts { //新建一个通讯录类 ABAddressBookRef addressBooks = nil; if (DeviceVersion < 6.0) { addressBooks = ABAddressBookCreate(); } else { addressBooks =  ABAddressBookCreateWithOptions(NULL, NULL); //获取通讯录权限 dispatch_semap

js对汉字首字母排序

var city = ["北京","天津","上海","重庆","杭州"];city.sort(function compareFunction(a,b){ return a.localeCompare(b); }); console.log(city); ==>["北京", "重庆", "杭州", "上海", "

SQL根据汉字首字母排序

order by Name collate Chinese_PRC_CS_AS_KS_WS asc 原文地址:https://www.cnblogs.com/cheua/p/10722638.html

ORACLE中用某个字段的首字母排序

今天项目上有个需求用某个字段的首字母排序: 正菜上: 1.使用oracle自带的函数nlssort: 1)按照汉字首字母排序:nlssort(xxx,'NLS_SORT=SCHINESE_PINYIN_M'): 2)按照汉字笔画排序:nlssort(xxx,'NLS_SORT=SCHINESE_STROKE_M'); 3)按照汉字部首排序:nlssort(xxx,'NLS_SORT=SCHINESE_STROKE_M'); 2.如果需要将空值放在前面:后面加 nulls first 3.如果需要

sql 汉字按照首字母排序

SQL mysql 我们的MySQL使用latin1的默认字符集,也就是说,对汉字字段直接使用GBK内码的编码进行存储,当需要对一些有汉字的字段进行拼音排序时(特别涉及到类似于名字这样的字段时),默认无法通过order by关键字正确排序. 经过网上查找,网上的办法大多是针对使用utf8字符集的数据库,主要的方法有: 1)直接转换字段为gbk,数据表某字段client_name的字符编码是utf8_general_ci; 比如: SELECT  *  FROM  `client_info_msg

localeCompare按首字母排序汉字

sort() 方法用于对数组的元素进行排序. 如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字.比较函数应该具有两个参数 a 和 b,其返回值如下: 若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值. 若 a 等于 b,则返回 0. 若 a 大于 b,则返回一个大于 0 的值. <script type="text/javascript"> function sortNum

mysql 中将汉字按照首字母排序

因为数据库中可以设定表的编码格式,不同编码格式下,中文的排序有区别,下面分别介绍常用编码下的排序方法. 1.如果数据表的某字段的字符编码是 utf8_general_ci,排序写法: ORDER BY CONVERT(表别名.字段名 USING gbk) COLLATE gbk_chinese_ci ASC; 例子 SELECT * FROM mg_clinic mc ORDER BY CONVERT(mc.`CLNAME` USING gbk) COLLATE gbk_chinese_ci A

php获取汉字首字母

php获取汉字首字母,可以用于按字母对数据进行检索排序等. 分享下网上找的代码.亲测有效. function getFirstCharter($str){ if(empty($str)){return '';} $fchar=ord($str{0}); if($fchar>=ord('A')&&$fchar<=ord('z')) return strtoupper($str{0}); $s1=iconv('UTF-8','gb2312',$str); $s2=iconv('gb

Oracle 10g如何对用户姓名,按首字母排序、查询

首先介绍Oracle 9i新增加的一个系统自带的排序函数 1.按首字母排序 在oracle9i中新增了按照拼音.部首.笔画排序功能.设置NLS_SORT值     SCHINESE_RADICAL_M   按照部首(第一顺序).笔划(第二顺序)排序     SCHINESE_STROKE_M   按照笔划(第一顺序).部首(第二顺序)排序     SCHINESE_PINYIN_M   按照拼音排序 oracle9i中新增了按照拼音.部首.笔画排序功能 用法示例: 拼音 SELECT * FRO