js中文字符串数组排序

问题描述

js中文字符串数组排序

RT

注:
1.网上看到的很多大部分是说用a.sort(function(a,b){return a.localeCompare(b)});//汉字拼音排序方法
2.但事实上,如一位网友所说,localeCompare函数并不可靠,所有的帖子基本上都是以讹传讹,换句话说,localeCompare函数根本就不能对中文字符串数组进行排序

解决方案

阿三4,曾,龚,李四2,王五3,张,张三1
曾是多音字,也念ceng

解决方案二:

你说不可靠是怎么个不可靠?不是能正确排序吗。。

    var a = ['你好','a','总过','伦敦'];

    a.sort(function (a, b) { return a.localeCompare(b) });
    console.log(a)//["a", "伦敦", "你好", "总过"]

解决方案三:

例如,下面的代码的排序结果是:
张三1,李四2,王五3,阿三4,曾,龚,张
阿三4,曾,龚,李四2,王五3,张,张三1 //显然排序之后是错误的

<script type="text/javascript">
 var arr = ["张三1","李四2","王五3","阿三4","曾","龚","张"];
document.write(arr+"<br/>");
arr.sort(function(a,b){
return a.localeCompare(b);
});
document.write(arr);
</script>

解决方案四:

这里有详细解释
http://bbs.csdn.net/topics/350060668

解决方案五:

用老外的东西排中文顺序本来就不靠谱。你可以找个专门的jar包解决问题。

时间: 2024-10-28 11:41:28

js中文字符串数组排序的相关文章

js中文字符串编码Unicode互转函数介绍

最近比较纠结.在我面前有两条路,一个是去朋友的创业公司帮忙一起创业,一个是去比较大的公司工作.所以一直没有时间写博客.今天看到一个中文字符串和Unicode互转函数,及html中获取图片url函数还不错,在这里分享一下! 中文转unicode函数 //中文转unicode function unicode(value){         var preStr='\\u';         var cnReg=/[\u0391-\uFFE5]/gm;         if(cnReg.test(v

js去除字符串里中文与空格的例子

 js去除字符串里中文与空格我们可以使用替换与正则表达式来实现,下文就整理了两个简单的例子,希望对各位有用. 1.去掉空格: function moveSpace(){ var str=" abc defg"; alert(str.replace(/[ ]/g,"")); } moveSpace(); 2.去掉中文: var title ="字符串zifuchuan" var reg=/[u4E00-u9FA5]/g; var result=ti

JS实现对中文字符串进行utf-8的Base64编码的方法(使其与Java编码相同)_javascript技巧

本文实例讲述了JS实现对中文字符串进行utf-8的Base64编码的方法.分享给大家供大家参考,具体如下: 要进行编码的字符串:"select 用户名 from 用户" 使用JAVA进行编码,Java程序: String sql = "select 用户名 from 用户"; String encodeStr = new String(Base64.encode(sql.getBytes("UTF-8"))); // 编码 System.out.

js计算字符串长度包含的中文是utf8格式_javascript技巧

方法一: 复制代码 代码如下: function byteLength(str) { var byteLen = 0, len = str.length; if( !str ) return 0; for( var i=0; i<len; i++ )  byteLen += str.charCodeAt(i) > 255 ? 2 : 1; return byteLen;} 说明:byteLength(str)参数:string str: 要计算字节长度的字符串(非ASCII的字符算2字节) 方

js中文汉字排序不正确,手动修正的方法

中文的数组进行排序,并不是按拼音首字母进行排序,如下: var arr = ['中','梁','丽','彬','A','B','E']; arr.sort(); // 结果: ["A", "B", "E", "中", "丽", "彬", "梁"] 这并不是我们想要的,因为中明明是Z开头的,在这里我想它排在最后 解决办法:stringObject.localeCompa

PHP 中文字符串截取无乱码的方法以及php汉字截取函数

昨天,在写代码时我遇到了一个中文字符串截取的问题,原本是想直接用substr()来,但这个是在单字节符下用的,对于多字节编码的汉字或是其它语言字符中,这个函数可能就用不上了,而且会容易截出乱码来!       现在就把我的下工作记录和总结给大家分享一下: 问题产生及使用案例网站:天气预报15天查询(http://tqybw.net) 问题时间:2013-10-31       解决思路:把汉字按一个汉字在编码下按其在完整性正则分割成数组,再根据需要取截取长度:       1.实现方法函数  

js获取字符串字节数方法小结

 本文实例讲述了js获取字符串字节数的方法.分享给大家供大家参考.具体如下: 大家都知道,获取字符串的长度可用length来获取, 那么获取这段字符串的字节数呢? 英文字母肯定lenght和字节数都一样:都是1 而中文lenght=1,字节数=2 因此,需要作的就是把中文字符的字节数计算出来. 方法一: 1 2 3 4 5 alert('a'.replace(/[^u0000-u00ff]/g,"aaa").length); //原理:把中文字符替换成2个英文字母,那么字节数就是2,

JS判断字符串长度的5个方法

 这篇文章主要介绍了JS判断字符串长度的5个方法,并且区分中文和英文,需要的朋友可以参考下 目的:计算字符串长度(英文占1个字符,中文汉字占2个字符)   方法一:    代码如下: String.prototype.gblen = function() {     var len = 0;     for (var i=0; i<this.length; i++) {       if (this.charCodeAt(i)>127 || this.charCodeAt(i)==94) {

Java实现对中文字符串的排序功能实例代码_java

废话不多说了,直接给大家代码分享代码了. 具体代码如下所示: package test; /** * * @Title 书的信息类 * @author LR * @version . * @since -- */ public class Book { private String book_id; private String book_name; private String publishing_house; public Book(String book_id, String book_