首页 > 其他分享 >UES-02-字符串与正则

UES-02-字符串与正则

时间:2024-04-27 22:33:41浏览次数:21  
标签:02 码元 字面 正则 参数 模板 字符串 UES

Unicode 支持

16 位二进制数称为一个码元,原先的 UTF-16 中一个码元表示一个字符。现今的 UTF-16 中,一个代码点表示一个字符,一个代码点由一个码元或者两个连续的码元表示,也就是一个字符由一个码元或者两个连续的码元表示。

字符串的 codePointAt() 方法接收一个索引值,返回字符串中对应码元索引的代码点。如果字符由单个码元表示,返回该码元;如果字符由两个码元表示,则第一个码元索引返回这两个码元组成的代码点,第二个码元索引返回单个码元(意义不大)。

String.fromCodePoint() 方法接收一个代码点,返回这个代码点表示的单个字符构成的字符串。

字符串的 normalize() 方法将字符串标准化,主要用于比较字符串。

正则表达式中的 'u' 标志表示正则根据字符匹配而不是码元,不使用该标志则根据码元匹配。

字符串改动

includes()/startsWith()/endsWith() 方法接收两个参数,第二个参数可选。第一个参数类型为字符串,若不传第二个参数,此时如果第一个参数在调用方法的字符串中存在/位于起始位置/位于末尾位置,则返回 true,否则返回 false。第二个参数为索引值,当传入时,前两个方法从该索引处开始匹配;而 endsWith() 方法的第二个参数表示从末尾开始向前数的字符数,然后开始从该索引处匹配,例如第二个参数为 5,字符串长度为 20,则从索引 15 开始匹配。这三个方法不能接收正则表达式。

repeat() 方法返回调用该方法的字符串重复指定次数得到的新字符串。

正则改动

无标志的正则对象,属性 lastIndex 对其无影响。对于有标志的正则对象,lastIndex 保存匹配到的字符(串)后面的那个字符的索引,下次匹配从该索引开始。如果匹配失败,则 lastIndex 重置为 0。

具有 'y' 标志的正则对象(称为 sticky 正则),只有调用正则对象的方法时,lastIndex 属性才会生效;如果使用 '^' 匹配字符串起始位置,sticky 正则只会从起始位置开始匹配,如果此时 lastIndex 不为 0,则匹配不可能成功。

正则对象的 sticky 属性为只读的布尔值,用于判断该对象是否有 'y' 标志。

在复制正则表达式时,可以将已有的正则对象传给 RegExp 构造器,第二个参数可以传入一个标志,用于替换已有正则对象中的标志来创建新的正则对象。

正则对象的 source 属性返回正则表达式去除标志后的字符串表示;flags 属性返回标志的字符串表示。

模板字面量

用反引号( ` )括起来的字符串称为模板字面量,如果字符串中包含反引号,需要使用反斜杠转义,单引号、双引号不需要转义。

模板字面量允许换行,也可以在需要换行的位置使用 '\n'。

模板字面量内部,使用 '${}' 可以在其中插入变量或者表达式,称为替换位。替换位也可以嵌套使用。

标签函数的目的之一是用于将模板字面量里面插入的所有变量或者表达式转换成最终结果生成最终的字符串并返回。这个函数的第一个参数接收模板字面量中由插入的内容作为分隔符分割的字符串字面值作为元素的数组,后面的参数为这些插入的内容按照在模板字面量中的顺序对应的最终值。即使插入的内容位于起始位置,起始位置依然为数组的第一个元素,此时该元素为空字符串。标签函数不需要使用括号,只需要在函数名后面紧跟模板字面量即可。

String.raw 标签函数返回模板字面量中转义之前的所有字符(包括转义字符)构成的字符串。这个标签函数的参数形式与上一段介绍的标签函数相似,除了第一个参数还有一个 raw 属性,这个属性是第一个参数的所有元素对应的转义之前的元素构成的数组。

参考

[1] Zakas, Understanding ECMAScript 6, 2017.

标签:02,码元,字面,正则,参数,模板,字符串,UES
From: https://www.cnblogs.com/xdreamc/p/16522864.html

相关文章

  • Bluestein's Algorithm
    Bluestein'sAlgorithm用于当不是\(2\)的整数次幂时对多项式的(I)DFT。考虑现在要求:\[f_m=\sum\limits_{k=0}^{n-1}a_kw^{mk}\]Bluestein的核心思想在于拆\(mk\)。不难证明\(mk=\frac{m(m-1)}{2}+\frac{k(k+1)}{2}-\frac{(m-k)(m-k-1)}{2}\)。......
  • 实验三202383310064闫忠奥
    实验一#include<stdio.h>#include<stdlib.h>#include<time.h>#include<windows.h>#defineN80voidprint_text(intline,intcol,chartext[]);voidprint_spaces(intn);voidprint_blank_lines(intn);intmain(){ intline,col......
  • 2024年 ▇▇▇▇大学嵌入式系 综合实践 全过程记录
    2024年▇▇NU嵌入式系综合实践全过程记录写在结课答辩完成后:这是一门失败的课程,在我们眼中看来,这更像是▇▇▇▇▇▇大学软件工程学院的近年来在本科人才培养改革失败上的集中体现和必然结果。落后于主流的课程设计、古老的实验设备、部分教师的不作为与死板固执、学生不......
  • 20240427打卡-02构建之法阅读笔记之一
    在一个团队里,每个人的代码风格不一样,并且每个人负责不同的模块,而最后整合的时候就会出现困难,明明在自己的电脑上可以运行,但为什么到别人的电脑上就会报错,就好比这次团队作业的一个功能,一个人实现了图片的上传功能,但是在别人的电脑里无论如何也实现不了。如何能让自己负责的模块功......
  • 02. x86处理器运行方式
    【CPU指令】CPU控制器通过读取存储器中的指令确定要执行的功能,CPU运行需要不停的读取指令,计算机启动后CPU会从固定地址处开始读取指令,首先读取NORFlash存储器中的固件,固件执行完毕后引导操作系统执行。指令是一个二进制数据,主要由如下两部分组成:1.操作码,设置控制器执行的功能......
  • 正则表达式
    ?可以匹配前面字符出现0次或1次,输入:use?匹配:useused可以匹配前面字符出现0次或多次输入:ab*c匹配:abcabbbc//希望出现的b的次数在2-6次之间可以匹配前面字符出现1次以上输入:ab+cab{2,6}c匹配:abcabbbc|匹配括号......
  • 2024.04.27 笔记,下午
    b/s架构和c/s架构(重点)(1)bs:浏览器------服务器(web)b:broeser浏览器s:server服务器bs的应用:论坛,百度,知乎,豆瓣,csdn,博客园(2)cs架构:客户端-----服务器(app)c:client客户端s:server服务器cs应用:抖音,微信,qq,快手,酷狗区别:(1)bs不需要更新,直接通过浏览器输入网址进行访问;......
  • 01-linu核心基础-02运维基础重要概念
    ip地址IPv4(第四版本的IP协议)是构成现今互联网技术的基石协议查看自己的IP(公网)访问该网址、即可得知自己在互联网中的IP地址。http://www.net.cn/static/customercare/yourip.aspIP地址理解Ip地址由两部分组成,网络部分+主机部分网络部分指的是同一个网段、好比咱们这间教室......
  • es笔记20240427
    postfilter    聚合结果统计topagges对聚合结果源数据统计   ......
  • XYCTF2024-web-wp
    怎么全是傻逼绕过题。不想评价,就随便打着玩,除了最后一道java反序列化搞心态,其他的ak了:简单题不想说,http注意一下代理是用Via就行,warmup直接:http://xyctf.top:37034/?val1=240610708&val2=QNKCDZO&md5=0e215962017&XYCTF=240610708&XY=240610708LLeeevvveeelll222.phpget......