`

js包括中文字符串的比较

 
阅读更多
基于jquery的使ListNav兼容中文首字拼音排序的实现代码
http://www.jb51.net/article/27643.htm
它是使用jquery.charfirst.pinyin.js工具

原文localeCompare

http://kewang.pixnet.net/blog/post/6574774-%E5%A6%82%E4%BD%95%E7%94%A8javascript%E5%81%9A%E4%B8%AD%E6%96%87%E6%8E%92%E5%BA%8F
巴豆夭在新增學校以及店家資料的時候,不是以字的筆劃做排序,而是以新增時間的先後做排序,所以使用者在搜尋學校和店家資料的時候會變的非常不方便。

所以我找了蠻多的資料,看看能不能在client端用javascript來做排序。不在server端用php做排序的原因,當然是為了怕server的loading變大,所以把這些資料抓回來用javascript做排序。

看了這兩篇「JavaScript中实现数组的排序、乱序和搜索。」http://blog.iyi.cn/hily/archives/2005/09/javascript.html和「利用JavaScript的sort()对包含汉字字符串数组进行排序」http://blog.iyi.cn/hily/archives/2005/10/javascriptsort.html之後,才知道javascript有localeCompare()這種函式可以拿來做本地化的字串比較。

localeCompare的使用方法就是像這樣:
ret = '國立宜蘭大學'.localeCompare('國立台灣大學')


原始字串(國立宜蘭大學)跟要比較的字串(國立台灣大學)做比較,如果原始字串比較小的話,則ret就會傳回小於0的數字;如果比較大的話,則傳回大於0的數字;如果相等就傳回0。

可是我在使用這個函式的時候,結果跟我想要的不太相同,因為我是想用中文字的筆劃來做排序,可是最後排出來的時候「大同大學」卻排在「國立宜蘭大學」的後面,實在很奇怪耶。

後來我又在石頭閒語看到了這篇文章「以動態網頁方式排序網頁的表格內容」http://blog.roodo.com/rocksaying/archives/2793545.html之後,才了解這個問題目前好像是無解,我猜也許是因為unicode的關係吧(昏)。

後記:在IE上可以用筆劃做排序,可是在Firefox和Opera上卻不是如此,不知道Firefox和Opera依照的是什麼規則。


JavaScript localeCompare() 方法
http://www.w3school.com.cn/js/jsref_localeCompare.asp
定义和用法
用本地特定的顺序来比较两个字符串
语法
stringObject.localeCompare(target)

参数 描述
target 要以本地特定的顺序与 stringObject 进行比较的字符串。
返回值
说明比较结果的数字。如果 stringObject 小于 target,则 localeCompare() 返回小于 0 的数。如果 stringObject 大于 target,则该方法返回大于 0 的数。如果两个字符串相等,或根据本地排序规则没有区别,该方法返回 0。
说明
把 < 和 > 运算符应用到字符串时,它们只用字符的 Unicode 编码比较字符串,而不考虑当地的排序规则。以这种方法生成的顺序不一定是正确的。例如,在西班牙语中,其中字符 “ch” 通常作为出现在字母 “c” 和 “d” 之间的字符来排序。
localeCompare() 方法提供的比较字符串的方法,考虑了默认的本地排序规则。ECMAscript 标准并没有规定如何进行本地特定的比较操作,它只规定该函数采用底层操作系统提供的排序规则。
实例
在本例中,我们将用本地特定排序规则对字符串数组进行排序:
var str;
str.sort (function(a,b){return a.localeCompare(b)})
分享到:
评论

相关推荐

    JavaScript截取中文字符串

    ### JavaScript截取中文字符串知识点详解 ...通过上述介绍,我们可以看到,使用正确的技术和方法可以在处理包含中文的字符串时更加灵活高效。掌握了这一技能,开发者能够在实际项目中更好地应对各种文本处理需求。

    aotu.js 字符串指定字符 随机生成出汉字

    // 输出类似 "你好啊" 这样的随机汉字字符串 ``` 这个功能对于生成引流脚本中的随机内容特别有效,因为它能确保每次运行生成的内容都是不同的,从而增加吸引力。此外,`aotu.js`可能还提供了其他高级选项,比如...

    js对中文字符串进行gb2312编码解码

    在JavaScript(JS)中,处理中文字符编码是一个常见的需求,特别是在与服务器交互或者处理文本数据时。GB2312编码是一种在中国大陆广泛使用的简体中文字符集,它包含了6763个常用汉字和一些其他字符。在JavaScript中...

    js版字符串快速检索

    基本的字符串操作包括`indexOf()`、`lastIndexOf()`和`includes()`,它们可以用于查找子字符串的存在位置或判断是否包含特定子串。 2. **正则表达式匹配**:`match()`、`search()`和`replace()`等方法结合正则...

    JS去掉字符串空格

    在JavaScript(简称JS)开发中,对字符串进行操作是一项常见且重要的任务,其中去除字符串中的空格是一个典型的处理需求。本文将深入探讨如何利用JS来有效地去除字符串中的空格,包括单个空格、多个连续空格以及字符...

    截取指定长度的字符串

    对于包含汉字的字符串,需要注意编码问题。不同的编程语言对非ASCII字符(如汉字)的处理方式不同。在Python 3中,字符串默认使用Unicode编码,可以直接处理汉字。而在一些其他语言中,如Java,可能需要先将字符串...

    js字符串操作大全

    根据给定的文件信息,我们将深入探讨JavaScript(简称JS)中的字符串操作,这些操作对于处理文本数据至关重要。本文将详细解析文件中提到的部分扩展方法,包括去除字符串两侧空格、获取字符串的左侧、右侧或中间部分...

    字符串转ASCII ASCII转字符串

    对于包含多个字符的字符串,可以遍历每个字符并应用上述方法。例如,如果我们有一个字符串`"Hello"`,我们可以创建一个ASCII列表,然后将它们转换回去: ```python # Python示例 input_string = "Hello" ascii_...

    js处理字符串中的汉字问题集锦

    在JavaScript(JS)编程中,处理字符串中的汉字问题是一项常见的任务。这主要涉及到对Unicode编码的理解,因为中文字符在JS中是以Unicode编码的形式存在的。以下是一些关于如何处理字符串中汉字问题的关键知识点: ...

    js中英文混合的字符串换行

    根据题目描述,我们需要实现一个功能:对包含中文、英文及特殊符号的字符串进行处理,使得当字符串过长时能够自动换行。具体来说,英文字符和数字占据半个汉字的位置,而中文字符和部分特殊符号(如中文标点)则占据...

    截取字符串

    在编程领域,字符串操作是一项基础且重要的任务,而“截取字符串”是其中的一个关键功能。这个小demo展示了如何在不同的编程环境中实现字符串截取,同时也涉及到字符串的空格处理。接下来,我们将深入探讨这两个主题...

    js校验特殊字符

    另外,还提供了一个名为`myHasSpecSymbol`的函数,用于判断字符串是否只包含字母、数字、汉字、空格以及特定允许的字符(在这个例子中是井号 `#`)。这个函数会返回一个布尔值,如果字符串中包含不允许的字符,返回...

    字符串与十六进制数转换js

    实现字符串与十六进制数的相互转换,包括中文字符的转换。

    js加密解密字符串,暂时不支持中文

    自定义密码加解密字符串,本源码暂时不支持加密中文。

    javascript的到字符串字节长度

    在JavaScript中,字符串是基本的数据类型之一...你可以使用这个文档来深入学习JavaScript的各个方面,包括字符串操作和相关的编码问题。通过阅读这个手册,开发者可以更好地理解和解决与字符串字节长度计算相关的问题。

    计算字符串宽度

    这个宽度不同于字符串的字符数量或长度,因为不同字符的宽度可能不同,比如英文的字母和数字通常比中文字符窄,而某些特殊字符可能更宽。 字符串宽度的计算涉及以下几个关键知识点: 1. **字体**:字体决定了字符...

    VB MD5加密中文字符串源代码,JS中文MD5算法

    标题提到的“VB MD5加密中文字符串源代码”是指在Visual Basic (VB)环境中实现的一个MD5哈希函数,专门处理包含中文字符的字符串。VB是Microsoft开发的一种面向对象的编程语言,适合于快速开发Windows应用程序。由于...

    JS实现快速比较两个字符串中包含有相同数字的方法

    JS实现快速比较两个字符串中是否包含相同数字的方法涉及以下几个核心知识点: 1. JavaScript字符串操作:包括字符串的分割、排序和连接等基础操作。在上述标题和描述中,使用了字符串的split方法将字符串按照指定...

    javascript截取字符串(通过substring实现并支持中英文混合)

    在处理包含中文字符的字符串时,需要额外注意,因为中文字符在JavaScript字符串中的编码长度与英文字符不同。一个英文字符通常占用一个字节的空间,而一个中文字符可能占用两个或更多字节的空间。如果直接使用这些...

    json特殊字符串转换

    JSON同样支持包含中文字符。在字符串中直接写入中文字符即可,无需特别转义。例如: ```javascript let obj = { message: "你好,世界" }; let jsonString = JSON.stringify(obj); console.log(jsonString); // ...

Global site tag (gtag.js) - Google Analytics