网站建设公司的市场开拓方案网页版qq登录界面
2026/1/11 8:26:54 网站建设 项目流程
网站建设公司的市场开拓方案,网页版qq登录界面,企业网站的建设目的,wordpress模板之家大家好#xff0c;我是CC#xff0c;在这里欢迎大家的到来#xff5e;开场书接上文#xff0c;Intl 下的 Segmenter 对象可以实现对文本的分割#xff0c;除此之外#xff0c;还有对字符串比较、数字格式化、日期格式化等其他功能。这篇文章先来看看字符串比较#xff0…大家好我是CC在这里欢迎大家的到来开场书接上文Intl下的Segmenter对象可以实现对文本的分割除此之外还有对字符串比较、数字格式化、日期格式化等其他功能。这篇文章先来看看字符串比较现在来理论加实践一下。字符串比较Intl.Collator用于语言敏感的字符串比较。比较基于Collator对象的排序规则进行比较。第一个字符串出现在第二个字符串之前则为负值否则为正则相等时则返回 0。console.log(new Intl.Collator().compare(a, c)); // -1 console.log(new Intl.Collator().compare(c, a)); // 1 console.log(new Intl.Collator().compare(a, a)); // 0基于语言比较// 德语中ä 使用 a 的排序 console.log(new Intl.Collator(de).compare(ä, z)); // -1 // 在瑞典语中ä 排在 z 之后 console.log(new Intl.Collator(sv).compare(ä, z)); // 1配置项localeMatcher使用的区域匹配算法可选的值包括默认值为best fit-使用浏览器最佳匹配算法还有lookup-使用 BCP 47 规范的标准查找const testStrings [苹果, 香蕉, 橙子]; // lookup使用 BCP 47 规范的标准查找 const lookupCollator new Intl.Collator(zh, { localeMatcher: lookup }); // best fit使用浏览器的最佳匹配算法默认 const bestFitCollator new Intl.Collator(zh, { localeMatcher: best fit }); console.log(testStrings.sort(lookupCollator.compare)); console.log(testStrings.sort(bestFitCollator.compare)); // [橙子,苹果,香蕉] // [橙子,苹果,香蕉]usage是用于排序还是用于搜索匹配的字符串可选的值包括默认值是 sort还有 searchconst words [数据, 数据库, 数学, 数字, 数值]; // 用于排序的 Collator const sortCollator new Intl.Collator(zh-CN, { usage: sort, sensitivity: variant }); // 用于搜索的 Collator const searchCollator new Intl.Collator(zh-CN, { usage: search, sensitivity: base // 搜索时更宽松 }); console.log(排序结果:, words.sort(sortCollator.compare)); // [数据, 数据库, 数值, 数字, 数学] const searchTerm 数; const searchResults words.filter(word searchCollator.compare(word.slice(0, searchTerm.length), searchTerm) 0 ); console.log(搜索${searchTerm}的结果:, searchResults); // [数据, 数据库, 数学, 数字, 数值]sensitivity字符串中哪些差异应导致结果值为非零可能的值包括base: 只有字母不同的字符串比较时不相等像 a ≠ b、a á、a A。accent: 只有不同的基本字母或重音符号和其他变音符号的字符串比较时不相等例如a ≠ b、a ≠ á、a A。case: 只有不同的基本字母或大小写的字符串比较时不相等例如a ≠ b、a á、a ≠ A。variant: 字符串的字母、重音和其他变音富豪或不同大小写比较不相等例如a ≠ b、a ≠ á、a ≠ A。usage 是 sort 时默认值是 variantsearch 时默认值取决于区域。const pinyinExamples [ [mā, ma], // 声调差异 [lǜ, lu], // 特殊字符差异 [zhōng, zhong] // 音调符号差异 ]; const pinyinAccentCollator new Intl.Collator(zh-CN, { sensitivity: accent, // 忽略声调差异 usage: search }); pinyinExamples.forEach(([a, b]) { const result pinyinAccentCollator.compare(a, b); console.log(${a} vs ${b}: ${result 0 ? 匹配 : 不匹配}); }); // mā vs ma: 不匹配 // lǜ vs lu: 不匹配 // zhōng vs zhong: 不匹配 const pinyinBaseCollator new Intl.Collator(zh-CN, { sensitivity: base, // 忽略声调差异 usage: search }); pinyinExamples.forEach(([a, b]) { const result pinyinBaseCollator.compare(a, b); console.log(${a} vs ${b}: ${result 0 ? 匹配 : 不匹配}); }); // mā vs ma: 匹配 // lǜ vs lu: 匹配 // zhōng vs zhong: 匹配 const pinyinCaseCollator new Intl.Collator(zh-CN, { sensitivity: case, // 忽略声调差异 usage: search }); pinyinExamples.forEach(([a, b]) { const result pinyinCaseCollator.compare(a, b); console.log(${a} vs ${b}: ${result 0 ? 匹配 : 不匹配}); }); // mā vs ma: 匹配 // lǜ vs lu: 匹配 // zhōng vs zhong: 匹配 const pinyinVariantCollator new Intl.Collator(zh-CN, { sensitivity: variant, // 忽略声调差异 usage: search }); pinyinExamples.forEach(([a, b]) { const result pinyinVariantCollator.compare(a, b); console.log(${a} vs ${b}: ${result 0 ? 匹配 : 不匹配}); }); // mā vs ma: 不匹配 // lǜ vs lu: 不匹配 // zhōng vs zhong: 不匹配ignorePunctuation是否忽略标点默认是 falseconst texts [ 你好世界, 你好世界, 你好-世界, 你好。世界, 你好——世界 ]; const withPunctuation new Intl.Collator(zh-CN, { ignorePunctuation: false // 不忽略标点默认 }); const withoutPunctuation new Intl.Collator(zh-CN, { ignorePunctuation: true // 忽略标点 }); console.log(texts.sort(withPunctuation.compare)); console.log(texts.sort(withoutPunctuation.compare)); // [ // 你好-世界, // 你好——世界, // 你好世界, // 你好。世界, // 你好世界 // ] // [ // 你好世界, // 你好世界, // 你好-世界, // 你好。世界, // 你好——世界 // ]numeric是否使用数字对照使得“1”“2”“10”默认是 false同 locales 的 Unicode 扩展键 kn 设置但优先级高于他const items [ 第1章 引言, 第10章 总结, 第2章 正文, 第11章 附录, 第20章 参考文献 ]; // 普通排序字符串方式 const regularCollator new Intl.Collator(zh-CN, { numeric: false // 默认 }); // 数字感知排序 const numericCollator new Intl.Collator(zh-CN, { numeric: true }); console.log(items.slice().sort(regularCollator.compare)); console.log(items.slice().sort(numericCollator.compare)); // [ // 第10章 总结, // 第11章 附录, // 第1章 引言, // 第20章 参考文献, // 第2章 正文 // ] // [ // 第1章 引言, // 第2章 正文, // 第10章 总结, // 第11章 附录, // 第20章 参考文献 // ]caseFirst是否首先根据大小写排序可选的值包括upperlowerfalse同 locales 的 Unicode 扩展键 kf 设置但优先级高于他const mixedList [ Apple, apple, Banana, banana, 中文, China, china, 苹果 ]; // 大写优先 const upperFirst new Intl.Collator(zh-CN, { caseFirst: upper, sensitivity: case // 需要区分大小写 }); console.log(mixedList.slice().sort(upperFirst.compare)); // [Apple, Banana, China, apple, banana, china, 中文, 苹果] // [ // 苹果, // 中文, // Apple, // apple, // Banana, // banana, // China, // china // ] // 小写优先 const lowerFirst new Intl.Collator(zh-CN, { caseFirst: lower, sensitivity: case }); console.log(mixedList.slice().sort(lowerFirst.compare)); // [apple, banana, china, Apple, Banana, China, 中文, 苹果] // [ // 苹果, // 中文, // apple, // Apple, // banana, // Banana, // china, // China // ] // 不优先默认 const noCaseFirst new Intl.Collator(zh-CN, { caseFirst: false, sensitivity: case }); console.log(mixedList.slice().sort(noCaseFirst.compare)); // [ // 苹果, // 中文, // apple, // Apple, // banana, // Banana, // china, // China // ]collation区域的变体同 locales 的 Unicode 扩展键 co 设置但优先级高于他const words [张三, 李四, 王五, 赵六, 孙七]; // 默认拼音排序 const defaultCollator new Intl.Collator(zh-CN); console.log(words.slice().sort(defaultCollator.compare)); // 尝试不同的 collation如果支持 try { // 笔画排序如果支持 const strokeCollator new Intl.Collator(zh-CN-u-co-stroke); console.log(words.slice().sort(strokeCollator.compare)); } catch (e) { console.log(\n笔画排序不支持:, e.message); } // 通过 Unicode 扩展键设置 collation const localeWithCollation zh-CN-u-co-pinyin; // 拼音排序默认 const collator1 new Intl.Collator(localeWithCollation); console.log(\n通过 Unicode 扩展键设置 (拼音):, collator1.resolvedOptions().collation); // 通过 options 参数覆盖 const collator2 new Intl.Collator(zh-CN-u-co-stroke, { collation: pinyin // options 优先级更高 }); console.log(Options 覆盖 Unicode 扩展键:, collator2.resolvedOptions().collation);获取配置项const options collator.resolvedOptions(); usedOptions.locale; // de usedOptions.usage; // sort usedOptions.sensitivity; // base usedOptions.ignorePunctuation; // false usedOptions.collation; // default usedOptions.numeric; // false判断返回支持的 locale在给定的locales数组中判断出Collator支持的locales。但是可能每个浏览器支持的不大一样。const locales [ban, id-u-co-pinyin, de-ID]; const options { localeMatcher: lookup }; console.log(Intl.Collator.supportedLocalesOf(locales, options)); // [id-u-co-pinyin, de-ID]总结Intl.Collator可以根据当前环境或者手动设置的Locale以及字符串的大小写、音标、声调、标点符号和数字敏感度来实现字符串的排序和搜索在构建国际化应用中特别是在处理用户生成内容、搜索排序、数据展示等场景中能确保应用遵循目标语言的正确规则。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询