Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $YECBGYFECGEAFWHA as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2

Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $BBWFDDBHHYHDXXAB as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2
JavaScript中格式化字符串:排序,复数和列表_创想鸟

JavaScript中格式化字符串:排序,复数和列表

javascript中格式化字符串:排序,复数和列表

您是否曾尝试对不同语言的单词进行排序、处理复杂的复数规则或以自然的方式格式化列表?Intl API提供了一些强大的功能,尤其是在处理字符串和列表方面。

简述

我们将重点介绍三个强大且常被忽视的功能:

Intl.Collator:正确排序和比较字符串,支持多种语言。Intl.PluralRules:处理多种语言的复数形式。Intl.ListFormat:以自然的方式格式化列表,适应不同语言的习惯。

Intl.Collator

立即学习“Java免费学习笔记(深入)”;

字符串排序并非易事。不同的语言对字母顺序、大小写敏感性和变音符号有不同的规则。Intl.Collator应运而生!

基本排序

const collator = new Intl.Collator("en", { sensitivity: "base" });console.log(collator.compare("apple", "banana")); // -1 (apple 在 banana 之前)console.log(collator.compare("banana", "apple")); // 1 (banana 在 apple 之后)console.log(collator.compare("apple", "apple")); // 0 (两者相等)

{sensitivity: 'base'} 使比较不区分大小写,因此 “apple” 和 “Apple” 被视为相同。

使用 Intl.Collator 对数组排序

const fruits = ["grape", "banana", "apple", "mango"];fruits.sort(new Intl.Collator("en").compare);console.log(fruits); // ['apple', 'banana', 'grape', 'mango']

将 collator.compare 传递给 .sort() 确保基于语言环境的正确排序。

String.localeCompare vs Intl.Collator

两者都可以用于排序,但有一些关键区别:

Intl.Collator 默认支持本地化,而 localeCompare 使用系统或默认的语言环境设置。localeCompare 使用起来可能更直接,例如:"apple".localeCompare('banana')。Intl.Collator 通常更快。Intl.Collator 支持多种语言的排序。

选项

localeMatcher:比较字符串时使用的算法,”best fit”(默认)或 “lookup”,控制语言环境的选择。sensitivity:比较时考虑的因素,”base”、”accent”、”case”、”variant”(最严格)。ignorePunctuation:true 时忽略标点符号。

Intl.PluralRules:智能复数化

正确处理复数比简单地添加 “s” 更复杂。不同的语言有复杂的单数、双数、少数和复数规则。Intl.PluralRules 帮助我们动态确定正确的复数形式。

基本用法

const pluralrules = new Intl.PluralRules("en");console.log(pluralrules.select(1)); // "one"console.log(pluralrules.select(2)); // "other"console.log(pluralrules.select(0)); // "other"

对于英语,”one” 用于 1,”other” 用于其他所有数字。

不同的语言,不同的规则

例如,法语将 0 视为单数,而英语将其视为复数。

const pluralrulesfr = new Intl.PluralRules("fr");console.log(pluralrulesfr.select(1)); // "one"console.log(pluralrulesfr.select(0)); // "one" (法语将 0 视为单数)console.log(pluralrulesfr.select(2)); // "other"

动态生成复数消息

function getItemMessage(count) {  const pluralrule = new Intl.PluralRules("en").select(count);  const messages = {    one: `您有 ${count} 条消息。`,    other: `您有 ${count} 条消息。`,  };  return messages[pluralrule];}console.log(getItemMessage(1)); // "您有 1 条消息。"console.log(getItemMessage(3)); // "您有 3 条消息。"

此技术允许您的应用程序自动使用正确的复数形式。

选项

type:’cardinal’(默认)用于计数对象,’ordinal’ 用于序数(第一、第二等)。localeMatcher:’best fit’ 或 ‘lookup’,控制语言环境的选择。

Intl.ListFormat:自然格式化列表

编写项目列表(例如,“苹果、香蕉和橙子”)在不同语言中有所不同。有些语言使用逗号,有些使用 “和” 或 “et”,有些根本不使用连词。Intl.ListFormat 使正确格式化列表变得容易!

基本用法

const listformatter = new Intl.ListFormat("en", {  style: "long",  type: "conjunction",});console.log(listformatter.format(["apple", "banana", "cherry"]));// "apple, banana, and cherry"

它会自动在正确的位置添加 “and”!

不同的语言环境和样式

const listFormatterFr = new Intl.ListFormat("fr", {  style: "long",  type: "conjunction",});console.log(listFormatterFr.format(["pomme", "banane", "cerise"]));// "pomme, banane et cerise" (法语使用 "et" 代替 "and")const shortFormatter = new Intl.ListFormat("en", {  style: "short",  type: "disjunction",});console.log(shortFormatter.format(["tea", "coffee", "milk"]));// "tea, coffee, or milk" (disjunction 使用 "or" 代替 "and")

选项

type:’conjunction’(”and”)、’disjunction’(”or”)或 ‘unit’(例如,“5 小时,30 分钟”)。style:’long’(默认,完整单词)、’short’(缩写)、’narrow’(最小格式)。

结论

Intl.Collator、Intl.PluralRules 和 Intl.ListFormat 可以帮助您的 JavaScript 应用程序更国际化、更友好!这些 API 可以为您节省大量工作,并帮助您的应用程序轻松支持多种语言。

您之前尝试过这些 Intl 功能吗?

以上就是JavaScript中格式化字符串:排序,复数和列表的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1501319.html

赞 (0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
提高刺激的一个简单技巧
上一篇 2025年12月19日 23:27:53
如何将兰链用于AI工作流程自动化
下一篇 2025年12月19日 23:28:17

相关推荐

  • mac怎么阻止特定app访问网络_Mac阻止应用访问网络方法

    可通过系统防火墙、hosts文件、第三方工具或pf防火墙阻止应用联网。首先,macOS内置防火墙可阻断入站连接,需在“系统设置-网络-防火墙”中添加应用并启用阻止;其次,编辑/etc/hosts文件,将目标域名指向127.0.0.1可屏蔽其网络访问,需刷新DNS缓存生效;再者,使用Little Sn…

    2026年9月21日
    000
  • 如何在Java中使用接口实现多继承效果

    Java不支持多继承,但可通过实现多个接口模拟该效果。类可同时实现Flyable、Swimmable等接口,具备多种行为能力,并能利用默认方法复用逻辑,如Loggable提供日志功能。当多个接口含同名默认方法时,需在类中显式重写以解决冲突。接口用于定义“能做什么”,抽象类描述“是什么”,因类只能单继…

    2026年9月21日
    100
  • 前7月新能源SUV累计销量榜:理想L6第四 增长73.5%

    乘联会数据显示,2025年1-7月我国新能源suv累计销量达304.1万辆,同比增长28.5%。其中,7月单月零售量为46.5万辆,尽管环比下降15.2%,但同比仍保持强劲增长,市场整体发展势头良好。从销量top100榜单来看,新能源suv市场呈现出几大显著特征: ☞☞☞AI 智能聊天, 问答助手,…

    2026年9月21日
    100
  • Linux怎么踢出指定的登录用户

    要踢出指定登录用户,首先使用w或who命令识别其TTY或会话ID,再通过pkill -KILL -t 强制终止会话,或用loginctl terminate-session 优雅结束;若需防止重新登录,可临时锁定账户(passwd -l)或将用户shell改为/sbin/nologin。 在Linu…

    2026年9月21日
    000
  • iQOO 15开售:2K珠峰屏+自研Q3芯片 重塑手游视效新标杆

    iQOO 15开售:2K珠峰屏+自研Q3芯片 重塑手游视效新标杆iQOO 15开售:2K珠峰屏+自研Q3芯片 重塑手游视效新标杆iQOO 15开售:2K珠峰屏+自研Q3芯片 重塑手游视效新标杆iQOO 15开售:2K珠峰屏+自研Q3芯片 重塑手游视效新标杆

      备受瞩目的“未来性能旗舰”iqoo 15正式开售,起售价为4199元。作为iqoo推出的重磅力作,iqoo 15不仅延续了品牌一贯的硬核性能基因,更以“性能超长板,全面无短板”的产品理念,凭借第五代骁龙8至尊版、自研电竞芯片q3、2k三星珠峰屏、超级潜望长焦等顶级配置,全面刷新了高性能智能手机的…

    2026年9月21日 • 用户投稿
    100
  • 《哈迪斯2》95分年度必玩!外媒锐评”独立游戏崛起”

    《哈迪斯2》95分年度必玩!外媒锐评”独立游戏崛起”《哈迪斯2》95分年度必玩!外媒锐评”独立游戏崛起”《哈迪斯2》95分年度必玩!外媒锐评”独立游戏崛起”《哈迪斯2》95分年度必玩!外媒锐评”独立游戏崛起”

    外媒comicbook报道,2025年是游戏界的辉煌之年,多款新作在metacritic上评分突破90分,并获得“必玩”徽章。 《哈迪斯2》以95分的成绩成为本年度评分最高的游戏,强势领跑年度最佳游戏(GOTY)的激烈竞争,独立游戏的全面崛起也成为今年最瞩目的行业亮点。 《哈迪斯2》:95分封神,战…

    2026年9月21日 • 用户投稿
    100
  • mac怎么用命令行定时关机_Mac命令行定时关机方法

    使用shutdown命令可设定Mac在指定时间或相对分钟后关机;2. 通过pmset命令能创建每周重复的定时关机任务;3. 可用pmset -g sched查看计划,sudo pmset repeat cancel取消重复任务,kill终止一次性关机。 如果您希望在离开电脑后让Mac在特定时间自动关…

    2026年9月21日
    100
  • 外媒盘点即将上线的开放世界大作!哪款让你最心动?

    外媒盘点即将上线的开放世界大作!哪款让你最心动?外媒盘点即将上线的开放世界大作!哪款让你最心动?外媒盘点即将上线的开放世界大作!哪款让你最心动?外媒盘点即将上线的开放世界大作!哪款让你最心动?

    外媒gamerant近日整理了即将在2025至2026年上线的开放世界游戏大作,这些作品不仅在玩法上推陈出新,更凭借顶级视觉表现重新定义沉浸式体验。 1. 《红色沙漠》(Crimson Desert) 特色:独立动作RPG,虽出自《黑色沙漠》团队之手,但剧情与系统全面独立,主打类似格斗游戏的精准战斗…

    2026年9月21日 • 用户投稿
    100
  • MAC怎么查询硬件序列号_Mac查找本机序列号与保修信息

    首先可通过“关于本机”查看Mac序列号,依次点击苹果菜单→“关于本机”即可获取;也可通过“系统信息”或“终端”命令ioreg -l | grep IOPlatformSerialNumber查找;若无法操作设备,可登录Apple ID账户在线查询;最后访问苹果官网保修查询页面输入序列号,即可验证保修…

    2026年9月21日
    200
  • 2025年10月1日至12日全国批发54.6万辆 同比下降11%

    2025年10月1日至12日,全国乘用车市场呈现先抑后扬的发展趋势。根据乘用车市场信息联席会(乘联分会)最新发布的数据,该时间段内乘用车厂家批发销量为54.6万辆,同比下滑11%,较9月同期减少15%;市场零售销量达68.6万辆,同比下降8%,但相较上月同期增长12%。今年累计来看,乘用车批发总量已…

    2026年9月21日
    100
  • 苹果手机如何查看详细电池用量

    首先在“设置”中查看电池用量,可分析过去24小时和最近10天的使用情况,深蓝条代表屏幕亮着的时间,浅蓝条为后台或待机耗电;点击具体时段可查看当时耗电的App及其前台或后台运行状态;下拉页面查看各App的耗电排行及前后台使用时间,后台活动过高可能影响续航,建议通过“通用”-“后台App刷新”进行调整;…

    2026年9月21日
    800
  • 抖音点单小程序怎么制作?详细教程

    如何制作抖音点单小程序?完整操作指南 想要在抖音上搭建一个点单小程序?有赞为你准备了详尽的操作流程,助你轻松上线。以下是具体步骤与关键要点: 一、注册并认证小程序 成为平台开发者首先需在抖音开放平台完成开发者入驻,具体操作如下:账号注册:前往抖音开放平台官网,完成开发者账户的注册。主体信息认证:提交…

    2026年9月21日
    000
  • 苹果手机如何使用快捷指令定时任务

    苹果手机可通过快捷指令App设置定时自动化任务,如定时发送问候、打开App或调节音量。1. 在“自动化”标签页创建个人自动化,选择“时间”触发并设定重复频率;2. 添加所需操作,如发消息、播放音频、设亮度等;3. 关闭“运行前询问”以实现静默执行。设置一次后,任务将每天自动运行,无需第三方工具,提升…

    2026年9月21日
    200
  • 如何通过手机点单购买奈雪的茶抖音券?快速指南!

    在数字化生活日益普及的今天,智能手机已经深度融入我们的日常。对于喜爱奈雪的茶的消费者而言,通过手机获取抖音优惠券已成为一种高效又实惠的方式。本文将为您一步步解析如何使用手机轻松下单购买奈雪的茶抖音券,并提供实用操作技巧,助您畅享优惠好茶。 第一步:下载奈雪的茶官方应用 打开您手机上的应用市场(如苹果…

    2026年9月21日
    000
  • 微软 Windows 10 停服在即,官方升级工具却突然罢工

    10月13日,随着Windows 10的官方支持即将于次日(10月14日)正式终止,微软近期加大了对Windows 11的宣传力度,频繁推出广告和推广活动,强调新系统的多项升级与优势,吸引了不少用户考虑迁移至Windows 11。 然而颇具讽刺意味的是,在这一关键节点,微软自家的关键工具却出现了故障…

    2026年9月21日
    100
  • 苹果手机如何清理应用缓存数据

    苹果手机可通过系统设置和应用内操作管理缓存。1. 进入“设置”>“通用”>“iPhone存储空间”查看各App占用,卸载或删除不常用App以释放空间;2. 在微信中清理“缓存”及管理“聊天记录”,在抖音、快手等App内使用“清理缓存”功能;3. 清除Safari浏览器的历史记录与网站数据…

    2026年9月21日
    100
  • vivo浏览器自带的下载器和迅雷哪个快_vivo浏览器自带下载器与迅雷速度对比说明

    在vivo X90(Android 14)上对比vivo浏览器自带下载器与迅雷的下载速度,需在同一Wi-Fi环境下测试不同大小文件,取多次平均值;2. vivo浏览器依赖系统原生机制,无多线程加速,操作便捷但速度稳定一般;3. 迅雷采用多线程、P2P及缓存技术,大文件下载优势明显,尤其会员开启高速通…

    2026年9月21日
    100
  • Linux如何查看命令别名alias使用方法

    直接输入 alias 命令可列出当前会话所有别名,如需查看特定命令是否为别名可用 type 命令;别名通过简化常用命令提升效率并减少错误,临时别名在当前会话生效,永久别名需写入 ~/.bashrc 或 ~/.zshrc 文件,删除则用 unalias 命令;别名适用于简单命令替换,函数支持参数与逻辑…

    2026年9月21日
    100
  • 新装备新任务!《怪物猎人:荒野》限时举办活动“梦灯之仪”

    新装备新任务!《怪物猎人:荒野》限时举办活动“梦灯之仪”新装备新任务!《怪物猎人:荒野》限时举办活动“梦灯之仪”新装备新任务!《怪物猎人:荒野》限时举办活动“梦灯之仪”新装备新任务!《怪物猎人:荒野》限时举办活动“梦灯之仪”

    近日,《怪物猎人:荒野》官方宣布,将于2025年10月22日至11月12日限时开启季节性活动“交流祭典【梦灯之仪】”。同时,活动宣传预告片也已正式发布,一起来看看精彩内容吧! 宣传预告片: 大集会所将换上充满神秘与奇异氛围的全新装潢,迎接每一位猎人的到来。在活动期间,玩家可通过收集限定票券来获取专属…

    2026年9月21日 • 用户投稿
    000
  • mac怎么开启深色模式_Mac开启深色模式方法

    1、可通过系统设置、调度功能或控制中心在Mac上启用深色模式以减少视觉疲劳。2、进入系统设置→外观→选择深色即可切换界面颜色。3、在外观→调度中可设日落到日出或自定时段自动切换。4、通过控制中心的显示模块也可快速启用深色模式,界面即时响应。 如果您希望在Mac上更改显示外观以减少视觉疲劳或适应低光环…

    2026年9月21日
    200

发表回复

登录后才能评论
关注微信