localeCompare在小程序中,支持那些参数?
发布于 6 年前 作者 wenmin 11115 次浏览 来自 官方Issues

定义:用本地特定的顺序来比较两个字符串。

语法:stringObject.localeCompare(compareString, locales, options)


参数:compareString——用来比较的字符串;

           locales——可选。 用来表示一种或多种语言或区域的一个符合 BCP 47 标准的字符串或一个字符串数组;

           options——可选。 支持下列的一些或全部属性的一个对象:

                    localeMatcher:地域匹配算法的使用. 可能的值是 “lookup” 和 “best fit”; 默认的值是 “best fit”。更多相关的资料, 请参考 Intl page.

                    usage:指定比较的目标是排序或者是搜索. 可能的值是 “sort” 和 “search”; 默认是 “sort”.

                    sensitivity:指定排序程序的敏感度(Which differences in the strings should lead to non-zero result values.) 可能的有:

                                    “base”: 只有不同的字母字符串比较是不相等的. 举个例子: a ≠ b, a = á, a = A.

                                    “accent”: 只有不同的字母或读音比较是不相等的. 举个例子: a ≠ b, a ≠ á, a = A.

                                    “case”: 只有不同的字母或大小写比较是不相等的. 举个例子: a ≠ b, a = á, a ≠ A.

                                    “variant”: 不同的字母或读音及其它有区别的标志或大小写都是不相等的, 还有其它的差异可能也会考虑到. 举个例子: a ≠ b, a ≠ á, a ≠ A.

                    ignorePunctuation:指定是否忽略标点. 可能的值是 true and false; 默认为 false.

                    numeric:是否指定使用数字排序, 像这样 “1” < “2” < “10”. 可能的值是 true 和 false; 默认为 false. 这个选项能被通过options 属性设置或通过 Unicode 扩展。假如两个都被设置了, 则 options 优先。 实现不用必须支持这个属性.

                    caseFirst: 指定大小写有限排序. 可能的值有 “upper”, “lower”, or “false” (use the locale’s default); 默认为 “false”. 这个选项能被通过options 属性设置或通过 Unicode 扩展。假如两个都被设置了, 则 options 优先。 实现不用必须支持这个属性。


返回值:说明比较结果的数字。

(1)如果 stringObject 小于 target,则 localeCompare() 返回小于 0 的数。

(2)如果 stringObject 大于 target,则该方法返回大于 0 的数。

(3)如果两个字符串相等,或根据本地排序规则没有区别,该方法返回 0。

说明:把 < 和 > 运算符应用到字符串时,它们只用字符的 Unicode 编码比较字符串,而不考虑当地的排序规则。以这种方法生成的顺序不一定是正确的。localeCompare() 方法提供的比较字符串的方法,考虑了默认的本地排序规则。ECMAscript 标准并没有规定如何进行本地特定的比较操作,它只规定该函数采用底层操作系统提供的排序规则。

请问以上参数中,小程序支持那些参数?

回到顶部