xgqfrms™, xgqfrms® : xgqfrms's offical website of cnblogs! xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!

js charAt & String.fromCharCode All In One

js charAt & String.fromCharCode All In One

使用 JavaScript 把 ASCII 字符 转换为 ASCII 编码
使用 JavaScript 把 ASCII 编码 转换为 ASCII 字符

  1. ASCII 字符转换成 ASCII 编码

string to number

'a'.charCodeAt();
// 97
'a'.charCodeAt(0);
// 97

2 把 ASCII 编码 转换成 ASCII 字符

number to string

String.fromCharCode(97);
// 'a'

charCodeAt

charCodeAt() 方法返回 0 到 65535 之间的整数,表示给定索引处的 UTF-16 代码单元;

UTF-16 编码单元匹配能用一个 UTF-16 编码单元表示的 Unicode 码点。
如果 Unicode 码点不能用一个 UTF-16 编码单元表示(因为它的值大于0xFFFF),则所返回的编码单元会是这个码点代理对的第一个编码单元) 。
如果你想要整个码点的值,使用 codePointAt()。

字符 => 编码

console.log('abc'.charCodeAt(0));
// 97
console.log('abc'.charCodeAt(1));
// 98
console.log('abc'.charCodeAt(2));
// 99
console.log('abc'.charCodeAt(3));
// NaN

console.log('a'.charCodeAt());
// 97

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String/charCodeAt

String.fromCharCode

静态方法 String.fromCharCode() 返回由指定的 UTF-16 编码单元序列创建的字符串

编码 => 字符

console.log(String.fromCharCode(189, 43, 190, 61));
// "½+¾="

console.log(String.fromCharCode(97));
// "a"

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String/fromCharCode

MDN API dcos

charAt

charAt() 方法从一个字符串中返回指定的字符

str.charAt(index)

str.charAt()
str.charAt(0)

参数 index
一个介于 0 到 str.length - 1 之间的整数。如果无法将索引转换为整数或未提供索引,则默认为 0,因此返回 str 的第一个字符

返回值
表示指定索引处的字符(正好是一个 UTF-16 编码单元)的字符串

⚠️ 如果 index 超出范围,则 charAt() 返回一个空字符串

// index 超出范围, 返回一个`空字符串`
'abc'.charAt(999);
// ''

'abc'.charAt();
// 'a'
'abc'.charAt(0);
// 'a'

'abc'.charAt(1);
// 'b'

'979899'.charAt();
//'9'
'979899'.charAt(0);
//'9'

'979899'.charAt(1);
// '7'

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String/charAt

codePointAt

codePointAt() 方法返回 一个 Unicode 编码点值的非负整数

str.codePointAt(pos)

参数 pos
这个字符串中需要转码的元素的位置。

返回值
返回值是在字符串中的给定索引的编码单元体现的数字,如果在索引处没找到元素则返回 undefined

'abc'.codePointAt();  
//  97

'abc'.codePointAt(0);  
//  97


'\uD800\uDC00'.codePointAt(0);
//  65536

'🚀'.codePointAt(0);
//  128640

'🇨🇳'.codePointAt(0);
//  127464

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String/codePointAt

String.fromCodePoint()

静态 String.fromCodePoint() 方法返回使用指定的编码点序列创建的字符串

String.fromCodePoint(num1)
String.fromCodePoint(num1, num2)
String.fromCodePoint(num1, num2, /* …, */ numN)

参数
num1, ..., numN 一系列代码点

返回值
使用指定的代码点序列创建的字符串

console.log(String.fromCodePoint(9731, 9733, 9842, 0x2F804));
// "☃★♲你"

console.log(String.fromCodePoint(97));
// "a"

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String/fromCodePoint

LeetCode

  1. 检查相同字母间的距离

https://leetcode.com/problems/check-distances-between-same-letters/

https://leetcode.cn/problems/check-distances-between-same-letters/

// js 自动生成 26 个小写字母与其ASCII 编码的字典
const num = 'a'.charCodeAt(0);
// 'a' => 97
const dict = {};
for(let i = 0; i < 25; i++) {
  let char = String.fromCharCode(num + i);
  dict[char] = num + i;
}

console.log(dict);

refs

convert an ASCII character to its ASCII code in JavaScript / convert an ASCII code to its ASCII character in JavaScript

https://www.techiedelight.com/character-to-ascii-code-javascript/

https://stackoverflow.com/questions/94037/convert-character-to-ascii-code-in-javascript



©xgqfrms 2012-2020

www.cnblogs.com/xgqfrms 发布文章使用:只允许注册用户才可以访问!

原创文章,版权所有©️xgqfrms, 禁止转载 🈲️,侵权必究⚠️!


posted @ 2022-09-09 16:10  xgqfrms  阅读(99)  评论(1编辑  收藏  举报