跳到主要内容
分享您的体验:以2024年开发商调查为例
正文中添加了74个字符
来源 链接
分号
  • 7.1公里
  • 2
  • 30
  • 39

如果具有唯一区域设置/语言/正字法大小写规则的有向图碰巧有一个Unicode中的单一代码点“组合”表示,则可以使用这些代码点来明确大小写期望即使在没有区域设置数据的情况下。例如,与相同我们可以更喜欢沉稳的U+133升-Jj个有向图与荷兰语相关, ij 即使在缺乏现场数据的情况下/U+133与Dutch关联,以确保大小写映射到大写IJ/U+132:

如果具有唯一区域设置/语言/正字法大小写规则的有向图碰巧有一个Unicode中的单个码点“组合”表示,则可以使用这些代码点来明确大小写期望,与相同沉稳的U+133升-J有向图与荷兰语相关 ij 即使在缺乏现场数据的情况下:

如果具有唯一区域设置/语言/正字法大小写规则的有向图碰巧有一个Unicode中的单一代码点“组合”表示,则可以使用这些代码点来明确大小写期望即使在缺少地区数据的情况下。例如,我们可以更喜欢沉稳的-j个有向图, ij /U+133与Dutch关联,以确保大小写映射到大写IJ/U+132:

正文中添加了77个字符
来源 链接
分号
  • 7.1公里
  • 2
  • 30
  • 39

在写作时,Chromium中的英语和荷兰语行都是伊塞尔梅尔所以它并不比JS好。但试试看现在的Firefox!元素被显式注释为包含我们告诉浏览器包含荷兰语内容呈现将正确呈现为 伊杰塞尔梅尔 现在正确了!

这个解决方案是针对特定目的的(无论如何,它在Node中都不会对您有所帮助),但我之前没有注意到它,真是太傻了那里.

谢谢这个解决方案是针对特定目的的(无论如何,它在Node中都不会对你有所帮助),但我之前没有引起人们的注意是愚蠢的,因为有些人可能没有意识到他们在谷歌上搜索到了错误的问题。谢谢@paul23感谢他在实践中进一步澄清了IJ有向图的性质,并鼓励进一步调查!

在写作时,Chromium中的英语和荷兰语行都是伊塞尔梅尔-它做得并不比JS好。但在Firefox中试试吧!该元素被明确注释为包含荷兰语内容呈现 伊杰塞尔梅尔 现在正确了!

这个解决方案是针对特定目的的(无论如何,它在Node中都不会对您有所帮助),但我之前没有注意到它,真是太傻了.

谢谢@paul23感谢他在实践中进一步澄清了IJ有向图的性质,并鼓励进一步调查!

在写作时,Chromium中的英语和荷兰语行都是伊塞尔梅尔所以它并不比JS好。但试试看现在的Firefox!该元素我们告诉浏览器包含荷兰语将正确呈现为 伊杰塞尔梅尔 那里.

这个解决方案是针对特定目的的(无论如何,它在Node中都不会对你有所帮助),但我之前没有引起人们的注意是愚蠢的,因为有些人可能没有意识到他们在谷歌上搜索到了错误的问题。谢谢@paul23感谢他在实践中进一步澄清了IJ有向图的性质,并鼓励进一步调查!

正文中添加了3869个字符
来源 链接
分号
  • 7.1公里
  • 2
  • 30
  • 39

 

隐藏问题及其各种解决方法概述

函数大写首字母([第一第一个=“”, ...休息]){return[first.toUpperCase(),…rest].join('');}大写首字母(“𐐶𐐲𐑌𐐼𐐲𐑉") // "𐐎𐐲𐑌𐐼𐐲𐑉"
函数大写首字母(str){if(!str)返回“”;const firstCP=str.codePointAt(0);常量索引=第一个CP>0xFFFF?2 : 1;return String.fromCodePoint(firstCP).toUpperCase()+str.slice(index);}大写首字母(“𐐶𐐲𐑌𐐼𐐲𐑉") // "𐐎𐐲𐑌𐐼𐐲𐑉"
函数大写首字母(str){if(!str)返回“”;var firstCodeUnit=字符串[0];if(firstCodeUnit<'\uD800'||firstCode Unit>'\uDFFF'){return str[0].toUpperCase()+str.slice(1);}return str.slice(0,2).toUpperCase()+str.slices(2);}大写首字母(“𐐶𐐲𐑌𐐼𐐲𐑉") // "𐐎𐐲𐑌𐐼𐐲𐑉"

深入国际化(谁的资本化?)

函数大写首字母([第一第一个=“”, ...休息],区域设置){return[first.toLocaleUpperCase(locale),…rest].join('');}大写首字母(“意大利”,“en”)//“意大利”大写首字母(“italya”,“tr”)//“伊塔利亚”

这可以稍作调整,以处理字符串中多个单词的大写,具有相当好的准确性至少对某些语言而言,尽管如果这样做,无论主要语言是什么,都很难完全避免出现离奇的情况. 

这个CWU公司更改_何时更新字符属性匹配以下所有代码点,嗯,上套管时发生变化在缺少特定语言环境数据的一般情况下.我们可以试试这个您可能希望了解其他与案例相关的Unicode字符属性具有.它是基于标题的有向图字符,如很酷的区域可以探索,但如果我们在这里一一列举的话,我们会继续一整天。不过,如果你不熟悉,以下内容可以激发你的好奇心:\p{下}是一个比\p{小写字母}(又名\p{Ll})-方便图示由Unicode提供的此工具中的默认字符集比较.(注意:并非所有可以引用的内容都可以在ES正则表达式中使用,但您可能需要的大多数内容都是)。

JS中case-mapping的替代方案(Firefox和CSS喜欢荷兰!)

如果具有唯一区域设置/语言/正字法大小写规则的有向图碰巧有一个Unicode中的单一代码点“组合”表示,则可以使用这些代码点来明确大小写期望,如这个组合U+133 I-J有向图与荷兰语ij 例如即使在没有区域设置数据的情况下:

另一方面,预合成的有向图和类似的图有时会被弃用(就像那样,看起来!),并且在互换文本中可能是不受欢迎的,因为如果人们在实践中不按常规方式键入序列,那么可能会产生复制糊麻烦。不幸的是,在缺少预组合“提示”的情况下,显式语言环境在这里没有帮助(至少据我所知)。如果我们拼写伊塞尔梅尔和一个普通人+j个,大写首字母即使我们明确指出,也会产生错误的结果荷兰作为区域设置:

大写首字母('ijselmeer','nl');//“Ijsselmeer”:(

(我不完全确定是否有某些情况下行为与ICU数据可用性有关——也许其他人可以这么说。)

如果转换的目的是在web浏览器中显示文本内容,那么您有一个完全不同的选择,这可能是您的最佳选择:利用web平台的其他核心语言HTML和CSS的功能。使用HTMLlang=。。。和CSS文本转换:。。。,您得到了一个(伪)声明性解决方案,为用户代理留出了额外的空间“聪明。”JS API需要在所有浏览器(通常)中都具有可预测的结果,并且不能随意尝试启发式。然而,用户代理本身只对其用户负有义务,当输出针对人类时,启发式解决方案是公平的。如果我们告诉它“这段文字是荷兰语,但请将其大写显示”,现在不同浏览器的具体结果可能会有所不同,但这可能是它们各自能做的最好的结果。让我们看看:

<!DOCTYPE html><dl><dt>未转换伊斯塞尔梅尔<dt>以CSS和<code>lang=en大写ijsselmeer公司<dt>以CSS和<code>lang=nl大写ijsselmeer公司

在写作时,Chromium中的英语和荷兰语行都是伊塞尔梅尔-它并不比JS好。但在Firefox中试试吧!显式注释的元素包含荷兰语内容呈现伊杰塞尔梅尔现在正确了!

这个解决方案是针对特定目的的(无论如何,它在Node中都不会对您有所帮助),但我之前没有注意到它,真是太傻了。

感谢@paul23在实践中进一步澄清IJ有向图的性质并促使进一步调查!



 
函数大写首字母([第一, ...休息]){return[first.toUpperCase(),…rest].join('');}大写首字母(“𐐶𐐲𐑌𐐼𐐲𐑉") // "𐐎𐐲𐑌𐐼𐐲𐑉"
函数大写首字母(str){const firstCP=str.codePointAt(0);常量索引=第一个CP>0xFFFF?2 : 1;return String.fromCodePoint(firstCP).toUpperCase()+str.slice(index);}大写首字母(“𐐶𐐲𐑌𐐼𐐲𐑉") // "𐐎𐐲𐑌𐐼𐐲𐑉"
函数大写首字母(str){var firstCodeUnit=字符串[0];if(firstCodeUnit<'\uD800'||firstCode Unit>'\uDFFF'){return str[0].toUpperCase()+str.slice(1);}return str.slice(0,2).toUpperCase()+str.slices(2);}大写首字母(“𐐶𐐲𐑌𐐼𐐲𐑉") // "𐐎𐐲𐑌𐐼𐐲𐑉"
函数大写首字母([第一, ...休息],区域设置){return[first.toLocaleUpperCase(locale),…rest].join('');}大写首字母(“意大利”,“en”)//“意大利”大写首字母(“italya”,“tr”)//“伊塔利亚”

这可以稍作调整,以处理字符串中多个单词的大写,并且具有相当好的准确性。这个CWU公司更改_何时更新字符属性匹配以下所有代码点,嗯,大写时更改。我们可以试试这个用一个基于标题的有向图字符,如荷兰人ij 例如:

隐藏问题及其各种解决方法概述

函数大写首字母([第一个=“”, ...休息]){return[first.toUpperCase(),…rest].join('');}大写首字母(“𐐶𐐲𐑌𐐼𐐲𐑉") // "𐐎𐐲𐑌𐐼𐐲𐑉"
函数大写首字母(str){if(!str)返回“”;const firstCP=str.codePointAt(0);常量索引=第一个CP>0xFFFF?2 : 1;return String.fromCodePoint(firstCP).toUpperCase()+str.slice(index);}大写首字母(“𐐶𐐲𐑌𐐼𐐲𐑉") // "𐐎𐐲𐑌𐐼𐐲𐑉"
函数大写首字母(str){if(!str)返回“”;var firstCodeUnit=字符串[0];if(firstCodeUnit<'\uD800'||firstCode Unit>'\uDFFF'){return str[0].toUpperCase()+str.slice(1);}return str.slice(0,2).toUpperCase()+str.slices(2);}大写首字母(“𐐶𐐲𐑌𐐼𐐲𐑉") // "𐐎𐐲𐑌𐐼𐐲𐑉"

深入国际化(谁的资本化?)

函数大写首字母([第一个=“”, ...休息],区域设置){return[first.toLocaleUpperCase(locale),…rest].join('');}大写首字母(“意大利”,“en”)//“意大利”大写首字母(“italya”,“tr”)//“伊塔利亚”

这可以稍作调整,以处理字符串中多个单词的大写,具有相当好的准确性至少对某些语言而言,尽管如果这样做,无论主要语言是什么,都很难完全避免出现离奇的情况. 

这个CWU公司更改_何时更新character属性与大写时更改的所有代码点匹配在缺少特定语言环境数据的一般情况下.您可能希望了解其他与案例相关的Unicode字符属性具有.它是很酷的区域可以探索,但如果我们在这里一一列举的话,我们会继续一整天。不过,如果你不熟悉,以下内容可以激发你的好奇心:\p{下}是一个比\p{小写字母}(又名\p{Ll})-方便图示由Unicode提供的此工具中的默认字符集比较.(注意:并非所有可以引用的内容都可以在ES正则表达式中使用,但您可能需要的大多数内容都是)。

JS中case-mapping的替代方案(Firefox和CSS喜欢荷兰!)

如果具有唯一区域设置/语言/正字法大小写规则的有向图碰巧有一个Unicode中的单一代码点“组合”表示,则可以使用这些代码点来明确大小写期望,如这个组合U+133 I-J有向图与荷兰语ij 即使在缺乏现场数据的情况下:

另一方面,预合成的有向图和类似的图有时会被弃用(就像那样,看起来!),并且在互换文本中可能是不受欢迎的,因为如果人们在实践中不按常规方式键入序列,那么可能会产生复制糊麻烦。不幸的是,在缺少预组合“提示”的情况下,显式语言环境在这里没有帮助(至少据我所知)。如果我们拼写伊塞尔梅尔和一个普通人+j个,大写首字母即使我们明确指出,也会产生错误的结果荷兰作为区域设置:

大写首字母('ijselmeer','nl');//“Ijsselmeer”:(

(我不完全确定是否有某些情况下行为与ICU数据可用性有关——也许其他人可以这么说。)

如果转换的目的是在web浏览器中显示文本内容,那么您有一个完全不同的选择,这可能是您的最佳选择:利用web平台的其他核心语言HTML和CSS的功能。使用HTMLlang=。。。和CSS文本转换:。。。,您得到了一个(伪)声明性解决方案,为用户代理留出了额外的空间“聪明。”JS API需要在所有浏览器(通常)中都具有可预测的结果,并且不能随意尝试启发式。然而,用户代理本身只对其用户负有义务,当输出针对人类时,启发式解决方案是公平的。如果我们告诉它“这段文字是荷兰语,但请将其大写显示”,现在不同浏览器的具体结果可能会有所不同,但这可能是它们各自能做的最好的结果。让我们看看:

<!DOCTYPE html><dl><dt>未转换伊斯塞尔梅尔<dt>以CSS和<code>lang=en大写ijsselmeer公司<dt>以CSS和<code>lang=nl大写ijsselmeer公司

在写作时,Chromium中的英语和荷兰语行都是伊塞尔梅尔-它并不比JS好。但在Firefox中试试吧!显式注释的元素包含荷兰内容呈现伊杰塞尔梅尔现在正确了!

这个解决方案是针对特定目的的(无论如何,它在Node中都不会对您有所帮助),但我之前没有注意到它,真是太傻了。

感谢@paul23在实践中进一步澄清IJ有向图的性质并促使进一步调查!


更新关于浏览器对Unicode属性字符类的支持的说明-它们现在已在各地实现。
来源 链接
分号
  • 7.1公里
  • 2
  • 30
  • 39
加载
正文中添加了204个字符
来源 链接
分号
  • 7.1公里
  • 2
  • 30
  • 39
加载
正文中添加了204个字符
来源 链接
分号
  • 7.1公里
  • 2
  • 30
  • 39
加载
删除正文中的2个字符
来源 链接
分号
  • 7.1公里
  • 2
  • 30
  • 39
加载
正文中添加了6个字符
来源 链接
分号
  • 7.1公里
  • 2
  • 30
  • 39
加载
正文中添加了6个字符
来源 链接
分号
  • 7.1公里
  • 2
  • 30
  • 39
加载
添加了关于在支持Unicode属性的代理中使用这些属性的附加部分。
来源 链接
分号
  • 7.1公里
  • 2
  • 30
  • 39
加载
来源 链接
分号
  • 7.1公里
  • 2
  • 30
  • 39
加载