Hướng dẫn charcodeat() trong javascript

Phương thức charCodeAt() trả về giá trị Unicode của một ký tự tại một vị trí được xác định trong chuỗi.

Cú pháp:

string.charCodeAt(index)

Trong đó, index là chỉ số của ký tự mà bạn muốn giá trị Unicode của nó đó được trả về:

  • Nếu index là 0 thì giá trị Unicode của ký tự ở vị trí đầu tiền sẽ được trả về
  • Nếu index là 1 thì giá trị Unicode của ký tự ở vị trí thứ hai sẽ được trả về
  • Nếu index là 2 thì giá trị Unicode của ký tự ở vị trí thứ ba sẽ được trả về
  • ....
  • Nếu index là length-1 thì giá trị Unicode của ký tự ở vị trí cuối cùng sẽ được trả về

Lưu ý: Giá trị trả về của phương thức charCodeAt() sẽ là:

  • Một số đại diện cho giá trị Unicode (nếu trong chuỗi có tồn tại ký tự ở chỉ số index)
  • NaN (nếu trong chuỗi không tồn tại ký tự ở chỉ số index)

Hiển thị lần lượt giá trị Unicode của các ký tự nằm ở vị trí đầu tiên, vị trí thứ sáu, vị trí cuối cùng trong chuỗi name


Xem ví dụ

Để sử dụng phương thức charCodeAt(), không nhất thiết phải lưu chuỗi vào bên trong một biến.


Xem ví dụ

Hướng dẫn cách lấy mã UTF-16 của ký tự trong chuỗi JavaScript. Bạn sẽ học được cách sử dụng phương thức charCodeAt trong JavaScript để lấy mã UTF-16 của ký tự trong chuỗi JavaScript tại vị trí chỉ định sau bài học này.

Phương thức charCodeAt() trong JavaScript sẽ trả về mã UTF-16 của ký tự. Nếu bạn muốn tìm Unicode code Point của ký tự thì hãy sử dụng tới phương thức codePointAt().

Và trước khi sử dụng phương thức charCodeAt() để lấy mã UTF-16 của ký tự trong chuỗi JavaScript thì bạn cần phải hiểu mã UTF-16 là gì chứ nhỉ. Khái niệm mã UTF-16, sự khác biệt giữa mã UTF-16 với điểm mã Unicode, cũng như cách sử dụng phương thức codePointAt() đều có ở bài dưới đây:

  • Lấy điểm mã Unicode của ký tự trong chuỗi JavaScript (codePointAt)

charCodeAt() trong JavaScript

charCodeAt() là một phương thức của đối tượng String trong JavaScript, có tác dụng lấy mã UTF-16 của ký tự trong chuỗi ban đầu tại vị trí index chỉ định.

Hướng dẫn charcodeat() trong javascript

Chúng ta sử dụng phương thức charCodeAt() với cú pháp sau đây:

str.charCodeAt(index)

Trong đó str là chuỗi ban đầu và charCodeAt sẽ lấy ra ký tự trong chuỗi tại vị trí index chỉ định. Lưu ý là chúng ta chỉ có thể sử dụng index dương có phạm vi từ 0 đến str.length - 1 mà thôi. Nếu lược bỏ index thì mặc định index sẽ bằng 0.

Và nếu chỉ định một index âm, hoặc là index nằm ngoài phạm vi index của chuỗi thì giá trị NaN sẽ được trả về.

Trong JavaScript, về mặc định thì các ký tự sẽ được lưu lại dưới dạng mã ký tự UTF-16 với một giá trị trong phạm vi từ 0 đến 65535 (0x0000 đến 0xFFFF), do đó kết quả của charCodeAt() cũng sẽ là một giá trị nằm trong phạm vi này.

Lưu ý, trong JavaScript thì ngoài các ký tự thông thường biểu diễn bởi một mã ký tự thì cũng tồn tại các ký tự đặc biệt Surrogate pair characters được biểu diễn bởi 2 mã ký tự. Do đó khi sử dụng charCodeAt() để tìm ra mã ký tự UTF-16 của các ký tự đặc biệt này thì kết quả trả về sẽ là 2 giá trị chứ không phải là 1 như thông thường.

  • Xem thêm: Surrogate pair characters trong JavaScript

Lấy mã UTF-16 của ký tự bình thường trong chuỗi JavaScript bằng charCodeAt()

Chúng ta sử dụng phương thức charCodeAt() để lấy mã UTF-16 của ký tự bình thường trong chuỗi JavaScript.

Hãy cùng xem các ví dụ cụ thể sau đây.

Ví dụ 1: sử dụng index dương để lấy mã UTF-16 của ký tự tại vị trí chỉ định

let word = 'tpHCM';

console.log(word.charCodeAt(0));

console.log(word.charCodeAt(2));

console.log(word.charCodeAt(4));

Ví dụ 2: lược bỏ index khi sử dụng phương thức charAt

let word = 'tpHCM';

console.log(word.charCodeAt());

Ví dụ 3: Giá trị NaN trả về khi sử dụng index nằm ngoài phạm vi có thể sử dụng

let word = 'tpHCM';

console.log(word.charCodeAt(-3));



console.log(word.charCodeAt(10));

Ở ví dụ này thì do chúng ta chỉ định index nằm ngoài phạm vi có thể nên kết quả trả về sẽ chỉ là giá trị NaN mà thôi.

Lấy mã UTF-16 của ký tự Surrogate pair characters trong chuỗi JavaScript bằng charCodeAt()

Surrogate pair characters là các ký tự đặc biệt được biểu diễn một cặp ghép (pair) bao gồm 2 mã đại diện (Surrogate) là High surrogate (mã đại diện trên) và Low surrogates (mã đại diện dưới), ví dụ như là Emoji (❤️‍ hoặc là hán tự tiếng Trung chẳng hạn.

Lưu ý là khác với ký tự bình thường thì Surrogate pair characters do được biểu diễn bởi 2 mã ký tự nên kết quả trả về khi tìm mã UTF-16 của chúng cũng sẽ là 2 giá trị.

Ví dụ, chúng ta lấy mã UTF-16 của một ký tự Surrogate pair characters như sau:

let icon = '❤️‍';

console.log('High surrogate:',icon.charCodeAt(0));
console.log('Low surrogate:' ,icon.charCodeAt(1));


Với một chuỗi ký tự Surrogate pair characters, do mỗi ký tự sẽ trả về 2 giá trị UTF-16, nên chúng ta cần phải chú ý lấy cách nhau 2 đơn vị nhé. Ví dụ:

let icons = '❤️‍👩';

console.log('Surrogate pair 1:',icons.charCodeAt(0), icons.charCodeAt(1) );


console.log('Surrogate pair 2:',icons.charCodeAt(2), icons.charCodeAt(3) );

  • Xem thêm: Surrogate pair characters trong JavaScript

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn cách lấy mã của ký tự trong chuỗi JavaScript tại vị trí chỉ định rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.

Và hãy cùng tìm hiểu những kiến thức sâu hơn về JavaScript trong các bài học tiếp theo.

Viết bởi Kiyoshi. Đã đăng ký bản quyền tác giả tại <a title="Bạn được tự do chia sẻ bài viết nhưng phải để lại đường link bài viết từ laptrinhcanban.com. Bạn không được sử dụng tài liệu cho mục đích thương mại. Không được phép chỉnh sửa nội dung được phát hành trên website của chúng tôi" style="color:#fff;background-color:silver" rel="license noopener" target="_blank" href="https://creativecommons.org/licenses/by-nc-nd/4.0/">Creativecommons</a>&nbsp;và <a title="Bạn được tự do chia sẻ bài viết nhưng phải để lại đường link bài viết từ laptrinhcanban.com. Bạn không được sử dụng tài liệu cho mục đích thương mại. Không được phép chỉnh sửa nội dung được phát hành trên website của chúng tôi" style="color:#fff;background-color:silver" target="_blank" rel="noopener" href="https://www.dmca.com/Protection/Status.aspx?ID=1631afcd-7c4a-467d-8016-402c5073e5cd" class="dmca-badge">DMCA</a><script src="https://images.dmca.com/Badges/DMCABadgeHelper.min.js">

Bài viết liên quan

Hãy chia sẻ và cùng lan tỏa kiến thức lập trình Nhật Bản tại Việt Nam!

HOME>> >>

Profile
Hướng dẫn charcodeat() trong javascript

Tác giả : Kiyoshi (Chis Thanh)

Kiyoshi là một cựu du học sinh tại Nhật Bản. Sau khi tốt nghiệp đại học Toyama năm 2017, Kiyoshi hiện đang làm BrSE tại Tokyo, Nhật Bản.