5.6.3.7 localeCompare() 方法

  与操作字符串有关的最后一个方法是localeCompare(),这个方法比较两个字符串,并返回下列值中的一个:

  • 如果字符串在字母表中应该排在字符串参数之前,则返回一个负数(大多数情况下是-1,具体的值要视实现而定);
  • 如果字符串等于字符串参数,则返回0;
  • 如果字符串在字母表中应该排在字符串参数之后,则返回一个正数(大多数情况下是1,具体的值同样要视实现而定)。

  例如:

var stringValue = "yellow";
alert(stringValue.localeCompare("brick"));//1
alert(stringValue.localeCompare("yellow"));//0
alert(stringValue.localeCompare("zoo"));//-1

  这个例子比较了字符串“yellow”和另外几个值:“brick”,“yellow”和“zoo”。因为“brick”在字母表中排在“yellow”之前,所以localeCompare()返回了1;而“yellow”等于“yellow”,所以localeCompare()返回了0;最后,“zoo”在字母表中排在“yellow”后面,所以localeCompare()返回了-1,。再强调一次,因为localeCompare()返回的数值取决于实现,所以最后像下面例子所示的这样使用这个方法。  

function determineOrder(value)
{
    var result = stringValue.localeCompare(value);
    if(result<0)
    {
        alert("the string ‘yellow‘ comes before the string ‘"+value+"‘ .");
    }else if(result>0)
    {
        alert("the string ‘yellw‘ comes after the string ‘ "+value+" ‘. ");
    }else
    {
        alert("the string ‘yellow‘ is equal to the string ‘ "+value+" ‘. ");
    }
}

determineOrder("brick");
determineOrder("yellow");
determineOrder("zoo");

  使用这种结构,就可以确保自己的代码在任何实现中都可以正确的运行了。

  localeCompare()方法比较与众不同的地方,就是实现所支持的地区(国家和语言)决定了这个方法的行为。比如,美国以英语作为ECMAScript实现的标准语言,因此localeCompare()就是区分大小写的,于是大写字母在字母表中排在小写字母前头就成为了一项决定性的比较规则。不过,在其他地区恐怕就不是这种情况了。

时间: 2024-09-28 16:37:23

5.6.3.7 localeCompare() 方法的相关文章

localeCompare() 方法实现中文的拼音排序

google了很多次才发现在国外网站上有提示如何比较中文,原文地址:http://www.webdeveloper.com/forum/showthread.php?t=9365 前提:使用Unicode 编码,如果其他GBK此方法应该就不行! 定义和用法 用本地特定的顺序来比较两个字符串. stringObject.localeCompare(target) target:要以本地特定的顺序与 stringObject 进行比较的字符串 测试1: var str="北京"; var

JavaScript 字符串方法(二)

字符串大小写转换方法<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>大小写转换</title> </head> <body> <script type="text/javascript"> var str="HELLO world"

String类型的属性和方法

× 目录 [1]属性 [2]对象通用方法 [3]访问字符方法[4]字符串拼接[5]创建子串方法[6]大小写转换[7]查找子串位置[8]正则匹配方法[9]去除首尾空格[10]字符串比较 前面的话 前面已经介绍过字符串String类型的基本知识,本文将介绍String类型的属性和方法 属性 字符串String类型的每个实例都有一个length属性,表示字符串中的字符个数.由于字符串是不可变的,所以字符串的长度也不可变 字符串的length属性不会在for/in循环中枚举,也不能通过delete操作符

总结下哪些我们常用或不常用的字符串处理方法

我们经常的用的字符串的处理方法,有哪些的?常用不常用的都有,有必要总结下 1, charAt:可返回指定位置的字符; <script type="text/javascript"> 返回值“e” var str="Hello world!" document.write(str.charAt(1)) </script> 2,charCodeAt:方法可返回指定位置的字符的 Unicode 编码.这个返回值是 0 - 65535 之间的整数. 

JavaScript原生对象属性和方法详解——String对象

length length 属性可返回字符串中的字符数目. length 是根据字符串的UTF-16编码来获取长度的,空字符串长度为0.length 不可修改. charAt() charAt() 方法可返回指定位置的字符.注意,JavaScript 并没有一种有别于字符串类型的字符数据类型,所以返回的字符是长度为 1 的字符串. stringObject.charAt(index) 参数index是必需的.表示字符串中某个位置的数字,即字符在字符串中的下标.字符串中第一个字符的下标是 0.如果

JavaScript String 字符串方法

JavaScript String 字符串方法汇总 1.str.indexOf() 方法查找字符串中的字符串  返回   字符串中指定文本首次出现的索引(位置) JavaScript 从零计算位置.0 是字符串中的第一个位置,1 是第二个,2 是第三个 ... 无法设置更强大的搜索值(正则表达式) var str = "The full name of China is the People's Republic of China."; var pos = str.indexOf(&q

js中文首字母排序(一)

sort()localeCompare() sort()使用,sort()函数会对使用的数组对象进行排序,排序规则安装字符编码顺序排序, 如:(无法直接比较中文) var arr = new Array(6); arr[0] = "23" arr[1] = "1" arr[2] = "8" arr[3] = "25" arr[4] = "1000" arr[5] = "1" arr.so

JavaScript高级程序设计(第3版)第五章读书笔记

第五章 引用类型 创建Object实例的方式有两种,第一种是使用new操作符后跟Object构造函数,例如: var person = new Object( ); person.name = “Nicholas”; person.age=29; 第二种是使用对象字面量表示法.如: var person = { name : “Nicholas”, age : 29 }; 在最后一个属性后面添加逗号,会在IE7及更早版本和Opera中导致错误. 两种访问对象属性的方法,一是方括号语法,例如per

js高程笔记4-5章

第四章 变量/作用域和内存问题 1.从一个变量给另一个变量赋值时,如果是赋基本类型值,是创建一个值副本,两个变量操作互不影响.如果是赋引用类型值,是创建一个引用(指针)的副本.两个变量指向同一个对象,操作互相会影响. 2.函数传参时,如果传基本类型值,函数局部作用域修改值不会再全局作用域体现出来.传引用类型值,局部作用域修改对象会在全局作用域体现出来.P71 3.检测基本数据类型用typeof,检测引用类型值时,想知道是什么类型的对象,用instanceof. 4.js没有块级({})作用域,一