I expect to be able to add an attribute to String.prototype that returns the 
number of codePoints of the string to reflect the actual number of characters 
instead of the code unit.




 

Definition of String.prototype.length

 

This property returns the number of code units in the string. UTF-16, the 
string format used by JavaScript, uses a single 16-bit code unit to represent 
the most common characters, but needs to use two code units for less 
commonly-used characters, so it's possible for the value returned by length to 
not match the actual number of characters in the string.

 
We refer to the String class in Java
 
The String class in the Java JVM uses UTF-16 encoding. 
String.length(): The method returns the number of characters in char in the 
string; 
String.codePointCount(): The method returns the number of codewords in the 
string.




 

I want the ECMA organization to be able to add a property or method to 
String.prototype that returns the value of the codePoint of the string. For 
example: String.prototype.codePointCount can return the actual number of 
codePoints instead of code unit.

```

const str1 = ‘1111’;

str1.length; // 4

str1.codePointCount; // 4

// ‘1’.codePointAt(0) // 49




const str2 = '𠮷𠮷𠮷𠮷’;

str2.length; // 8 

str2.codePointCount; // 4 

// '𠮷'.codePointAt(0); // 134071




const str3 = ‘😯😯😯😯’;

str3.length; // 8

str3.codePointCount; // 4

 

// '😯'.codePointAt(0); // 128559

```

 

I believe that most developers need such a method and property to get the 
number of codePoints in a string. I sincerely hope that you can accept my 
proposal, thanks.
_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to