ES6字符串操作

  Unicode编码,指的是Unicode编码字符集,所谓的编码字符集指的是Unicode会为每一个字符分配一个唯一的数字,从而形成的一张映射表格,其中这个唯一的数字也称之为码点(code point) 。例如“严”字在Unicode中对应的码点是U+0x4E25。

  代码单元(code unit), 是编码字符集进入到计算机的世界才出现的概念。因为编码字符集只是一张映射表格,它就放到哪里,计算机中怎么使用这张表格, 说白了,就是在计算机中怎么表示这些唯一的数字(码点)? 因为计算机中全是二进制,我们要用多少个字节来表示一个数字,可能是由于当时常用的字只有65535个,所以决定用16个字节来表示一个数字,这就是UTF-16的来历,js中也是用utf-16 来表示单个字符的。

这16个字节能表示的数字(0~65535)就叫做代码单元。 但是对于一些不常用的字符怎么处理,就是有的字符的码点超过了65535, 如66785, 在计算机中怎么表示,js的做法是两个代码单元(两个16字节)来表示。

  Js 中有一个字符串方法,charCodeAt(), 它可以取到字符的代码单元。

 <script>
        let text = "??";
        console.log(text.charCodeAt(0));  // 55362
        console.log(text.charCodeAt(1))   // 57271
 </script>

  可以看到 ?? 是有两个代码单元组成。这就有问题了,我们明明看到的是一个字,它确有两个代码单元组成,ES6为了解决这个问题,新增了一个方法codePointAt(),它直接返回的是字符的码点。

let text = "??";
console.log(text.codePointAt(0)); // 134071

  有了codePointAt() 方法,肯定还要有一个相反的方法,通过码点来返回字符,那就是fromCodePoint

console.log(String.fromCodePoint(134071))  //??
时间: 2024-08-14 21:55:23

ES6字符串操作的相关文章

ES6字符串扩展

前面的话 字符串是编程中重要的数据类型,只有熟练掌握字符串操作才能更高效地开发程序.JS字符串的特性总是落后于其它语言,例如,直到 ES5 中字符串才获得了 trim() 方法.而 ES6 则继续添加新功能以扩展 JS 解析字符串的能力.本文将详细介绍ES6中字符串扩展 子串识别 自从 JS 引入了 indexOf() 方法,开发者们就使用它来识别字符串是否存在于其它字符串中.ES6 包含了以下三个方法来满足这类需求:includes().startsWith().endsWith() [inc

条件、循环、函数定义、字符串操作练习

注意标准库的两种导入与使用方式,建议大家采用<库名>.<函数名>的方式. 对前面的代码进行优化,用for,while,if,def实现: 用循环画五角星 1 import turtle 2 3 turtle.fillcolor("red") 4 turtle.begin_fill() 5 for i in range(5): 6 turtle.forward(100) 7 turtle.right(144) 8 turtle.end_fill() 用循环画同心圆

PHP字符串操作大集合

字符串的处理非常重要.文本字符串中的空格或者其他没有意义的符号.例如,在一个电子商务应用中,当用户填写订单的内容时(如联系地址),可能输入一些空格.句号等PHP4及以上版本提供了4个去除字符串str首尾处空格或其他特殊符号.     string ltrim(string str [, string charlist]):去除字符串str尾的空格或其他特殊符号.     string chop(string str [, string charlist]):功能同rtrim(). 以上函数的第1

C语言难点1之输入输出,链接,字符串操作

C语言难点1之输入输出,链接,字符串操作 最近发现写了一段时间的C之后,还是有一些点并没有很好的get,我就想总结出来,写个系列博客,自己也好好的整理一下思路.这个系列主要出自三本书:<C专家编程>,<C陷阱和缺陷>,<C和指针>.有兴趣的同学可以好好看一下这几本书,对于打好C语言的基础是个非常不错的几本书. 1 一些输入输出的格式 对应的printf():和scanf()函数:在这里我给出常用的scanf格式码,和printf()函数也是一样的. 2 getchar(

C语言字符串操作总结大全(超详细)

1)字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat(p, p1) 附加字符串 strncat(p, p1, n) 附加指定长度字符串 strlen(p) 取字符串长度 strcmp(p, p1) 比较字符串 strcasecmp忽略大小写比较字符串strncmp(p, p1, n) 比较指定长度字符串 strchr(p, c) 在字符串中查找指定字符 strrchr(p, c) 在字符串中反向查找 strstr(p, p1

linux shell 字符串操作(长度,查找,替换)详解

原文地址:http://www.cnblogs.com/chengmo/archive/2010/10/02/1841355.html 在做shell批处理程序时候,经常会涉及到字符串相关操作.有很多命令语句,如:awk,sed都可以做字符串各种操作. 其实shell内置一系列操作符号,可以达到类似效果,大家知道,使用内部操作符会省略启动外部程序等时间,因此速度会非常的快. 一.判断读取字符串值 表达式 含义 ${var} 变量var的值, 与$var相同     ${var-DEFAULT}

c语言中字符串操作的工具类

 1.编写头文件 #define _CRT_SECURE_NO_WARNINGS //#pragmawarning(disable:4996) #include <stdio.h> #include <stdlib.h> #include <string.h> struct CString { char *p;        //保存字符串首地址 int reallength; //实际长度 }; typedef struct CString mystring;//

Python字符串操作

isalnum()判断是否都是有效字符串 ? 1 2 3 4 5 6 7 8 9 10 11 12 >>> ev1 = 'evilxr' >>> ev2 = 'ev1il2xr3' >>> ev3 = '.,/[email protected]#' >>> a = ev1.isalnum() >>> print a True >>> b = ev2.isalnum() >>> pr

JavaScript中常见的字符串操作函数及用法汇总

1.字符串转换 字符串转换是最基础的要求和工作,你可以将任何类型的数据都转换为字符串,你可以用下面三种方法的任何一种: ? 1 2 var num= 19; // 19 var myStr = num.toString(); // "19" 你同样可以这么做: ? 1 2 var num= 19; // 19 var myStr = String(num); // "19" 或者,再简单点儿: ? 1 2 var num= 19; // 19 var myStr =