- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
今天早上我的印象是 .toUpperCase 和 .toLowerCase 只翻译基本的拉丁字符 a-z 和 A-Z 而留下更“奇特”的字符,但当然,仔细检查后,事实并非如此......
console.log( "fi".toLowerCase() ); // this yields a single char
>fi
console.log( "fi".toUpperCase() ); // this yields two chars
>FI
阅读规范后,javascript 似乎正在应用“Unicode 默认大小写转换算法”,而且要复杂得多。 Unicode 规范说大写、小写和标题大小写之间的各种映射由两个文件 UnicodeData.txt 和 SpecialCasing.txt 定义,我对此不怀疑,但试图充分理解它们回答我的问题使我濒临脑出血的边缘。在我继续之前,我想我会问是否有更熟悉 Unicode 的人知道......
编辑:感谢您到目前为止的建议,但这是我的问题...
是否有任何 unicode upper 到 lower 大小写转换可能会将一个字符拆分为多个字符?
如果是这样,是否有规范的 javascript 方法来进行不拆分任何字符的大小写转换?我想要一个大小写转换方法来使单个 char 子字符串搜索不区分大小写。因此,结果是否是混合大小写的字符串并不重要,只要它是一致的即可,即单个字符始终被转换为单个字符,无论是大写字符还是小写字符。
最佳答案
你会遇到一个问题。需要进行一些转换才能生成多个字符。 ß
是一种奇特的德语写法 ss
,但是大写字母 ẞ
错误地不符合 Unicode 的大小写规则,因此对于历史背景- 转换为大写的兼容性将使其成为 SS
。同样,©
(带点的大写 i
)小写为 i̇
(不幸的是,它看起来像一个普通的小写 i
,但它实际上是小写的 i
后跟 COMBINING DOT ABOVE
)。这些实际上是 Unicode 的 SpecialCasing.txt
中的前两个示例.
要点是,有时没有执行一对一字符转换的大小写折叠解决方案。您需要编写算法来处理搜索单个字符实际上搜索一对字符的情况,或者只是接受您的算法不可移植。
通常的解决方案是这样的:
关于javascript - .toUpperCase 将一些字符一分为二? .toLowerCase 也可以这样做吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57308215/
我想知道为什么 Character.toUpperCase/toLowerCase 没有像 String.toUpperCase/toLowerCase 这样的 Locale 参数。 我必须将任何语言
这是我的程序的代码。主要方法已提供,不可触及。 main 方法将 String 转换为大写,但不接受 toUpperCase(); java方法。如何在不改变 main 方法的情况下解决这个问题? p
我们需要从大写字符串中获取字符流。有两种方法: word.toUpperCase().chars() word.chars().map(Character::toUpperCase) 哪种方法更好?
我想知道为什么 Character.toUpperCase/toLowerCase 没有像 String.toUpperCase/toLowerCase 这样的 Locale 参数。 我必须首先将可以
我正在尝试以这种特定的方式解决编码挑战。 目标是将字符串的每个第二个字母大写。 当我使用 letterArray[0] 或任何其他数字运行代码时,代码运行完美。但当我将其切换到 letterArray
我有以下字符串数组 let example = ["hello", "what"]; 我想将此数组转换为: ["Hello", "what"]; 为了实现这一点,我有以下代码: example[0]
当名称全部为大写时,该函数应该向用户喊回。例如,当名称为“JERRY”时,函数应返回字符串“HELLO, JERRY!”控制台记录错误:.toUpperCase() 不是函数。 var hello =
这个问题已经有答案了: toUpperCase() is not making the string upper case (9 个回答) 已关闭 2 年前。 我是 Javascript 新手,对 t
就在前几天,我遇到了一个奇怪的错误。我必须构建一串字符。作为分隔符,我正在与之通信的主机系统使用了 char 254。无论如何,我构建了我的字符串并将其发送到主机。在主机上我收到 char 222 作
这个问题已经有答案了: toUpperCase() is not making the string upper case (9 个回答) 已关闭 2 年前。 我是 Javascript 新手,对 t
这个问题已经有答案了: 已关闭10 年前。 Possible Duplicate: How do I compare strings in Java? Strings in Java : equals
典型输入如下... Department one 在我的函数中... var chksDept = $('input[type=checkbox].actEmail:checked'); var de
我想在每次更改输入字段的内容时执行 toUpperCase()。我的意思不是当字段失去焦点时,而是每次键入字符时。 我尝试了这个,但没有用(我对 JQ 还很陌生)! $(".myClass").cha
if (json.ScheduleCareProviderScheduledPatientsGetResult.Appointments[i].Patient.Firstname.toUpperCas
我不知道我做错了什么;但不知何故 .toUpperCase() 字符串函数在我的浏览器上不起作用还是我弄错了什么? var string ="kjsdgfiIJHBVSFIU"; string.toU
我正在尝试解决一个问题,该问题采用特定符号并将其从字符串中删除,然后将该符号后面的字符转换为大写。但由于某种原因,大写字符后面的字符也变成大写。 s 是给定的字符串。 String[] symbols
我正在尝试编写一个接受字符串的函数,该字符串将以数组内的“waved”版本返回: wave("stack") => ["Stack","sTack", "stAck", "staCk", "stack
这就是我想要的代码。当您写入任何单词时,它会使用 onkeyup 自动更改为大写。此外,当用户单击新窗口时,大写字母将显示在新窗口中。我只能做第一部分。我该怎么做呢? https://jsfiddle
我正在尝试修复由forbiddenapis 报告的错误。我有这样一句话: paramMap.put(Config.TITLEBOOST.toUpperCase(), titleBoost); 所以,它
再说一遍:我在这里学习!很抱歉回答这些基本问题,但我必须学习...... 使用我在网上读到的一个技巧,我试图将其从全部大写改为大写首字母。请参阅此处的代码 - 特别是我们正在查看 JavaScript
我是一名优秀的程序员,十分优秀!