【发布时间】:2020-11-10 18:38:43
【问题描述】:
在查看 JavaScript 概念时,我发现了String.normalize()。这不是 W3School 的“JavaScript String Reference”中出现的内容,因此,这就是我之前可能错过的原因。
我在HackerRank 中找到了有关它的更多信息,其中指出:
返回一个包含 Unicode 规范化形式的字符串 调用字符串的值。
举个例子:
var s = "HackerRank";
console.log(s.normalize());
console.log(s.normalize("NFKC"));
作为输出:
HackerRank
HackerRank
另外,在GeeksForGeeks:
string.normalize() 是 javascript 中的一个内置函数,它是 用于返回给定输入字符串的 Unicode 规范化形式。
举个例子:
<script>
// Taking a string as input.
var a = "GeeksForGeeks";
// calling normalize function.
b = a.normalize('NFC')
c = a.normalize('NFD')
d = a.normalize('NFKC')
e = a.normalize('NFKD')
// Printing normalised form.
document.write(b +"<br>");
document.write(c +"<br>");
document.write(d +"<br>");
document.write(e);
</script>
作为输出:
GeeksForGeeks
GeeksForGeeks
GeeksForGeeks
GeeksForGeeks
也许给出的例子真的很糟糕,因为它们不允许我看到任何变化。
我想知道...这种方法有什么意义?
【问题讨论】:
-
首先让我说 w3schools.com 不是官方参考。它与 W3C 没有任何关系。这是一个合适的资源:@987654324@
-
我知道@ChrisG,但内容通常非常好。
-
不,它不是,它不像以前那么糟糕,但这个社区尤其是仍在遭受它的折磨。我猜这个问题的存在就证明了我的观点?
-
String.prototype.normalize()在技术意义上是正确的,因为normalize()是您调用实例的动态方法,而不是类本身。normalize()的重点是能够比较看起来相同但不包含相同字符的字符串,如 MDN 上的示例代码所示。 -
令人困惑的是,任何人都可以为
normalize()编写“文档”——一个适用于 Unicode 字符串的函数——通过演示纯 ASCII 字符串......
标签: javascript string unicode normalization