ES6学习笔记4 正则表达式的扩展

JS——ES6、ES7、ES8、ES9、ES10介绍 ES全称ECMAScript,ECMAScript是ECMA制定的标准化脚本语言。目前JavaScript使用的ECMAScript版本为ECMA-417。关于ECMA的最新资讯可以浏览ECMA news查看。ECMA规范最终由TC39敲定。TC39由包括浏览器厂商在内的各方组成,他们开会推动JavaScript提案沿着一条严格的发展道路前进。Stage 0: strawman——最初想法的提交。 阅读详情

正则表达式的基础知识:https://blog.youkuaiyun.com/zjw_python/article/details/80845847

RegExp构造函数

ES6允许在构造函数第一个参数为正则表达式的情况下,使用第二个参数添加修饰符,而在ES5中会报错

var regex = new RegExp(/abc/ig, 'i');

若传入的正则表达式已有修饰符,则会被第二个参数覆盖


字符串正则方法

将match()、replace()、search()和split()方法全部定义到RegExp对象上,从而在语言内部全部调用RegExp的实例方法。

  • String.prototype.match 调用 RegExp.prototype[Symbol.match]
  • String.prototype.replace 调用 RegExp.prototype[Symbol.replace]
  • String.prototype.search 调用 RegExp.prototype[Symbol.search]
  • String.prototype.split 调用 RegExp.prototype[Symbol.split]

u修饰符

ES6对正则表达式添加了u修饰符,用来正确处理大于\uFFFF的 Unicode 字符,因此其可以正确处理四个字节的UTF-16编码

/^\uD83D/u.test('\uD83D\uDC2A');  //false  能正确识别4字节的字符
/^\uD83D/.test('\uD83D\uDC2A'); // true  错误识别为两个字符

除此之外,一旦加上u修饰符号,就会修改下面这些正则表达式的行为:

  • 点字符.加上u修饰符后,就可以识别码点大于0xFFFF的 Unicode 字符
    这里写图片描述
  • ES6 新增了使用大括号表示 Unicode 字符,这种表示法在正则表达式中必须加上u修饰符,才能识别当中的大括号
/u{61}/.test('a');  //false
/u{61}/u.test('a');  //true
  • 使用u修饰符后,所有量词都会正确识别码点大于0xFFFF的 Unicode 字符
    这里写图片描述
  • u修饰符使预定义模式也能正确识别码点大于0xFFFF的 Unicode 字符
    这里写图片描述
  • 加入u修饰符使i修饰符能正确识别字形相近的字符。下面代码中,不加u修饰符,就无法识别非规范的K字符
/[a-z]/i.test('\u212A') // false
/[a-z]/iu.test('\u212A') // true

y修饰符

ES6 还为正则表达式添加了y修饰符,叫做“粘连”(sticky)修饰符。y修饰符的作用与g修饰符类似,也是全局匹配,后一次匹配都从上一次匹配成功的下一个位置开始。不同之处在于,g修饰符只要剩余位置中存在匹配就可,而y修饰符确保匹配必须从剩余的第一个位置开始,这也就是“粘连”的涵义。

下面是g修饰符和y修饰符的区别

const REGEX = /a/g;

// 指定从2号位置(y)开始匹配
REGEX.lastIndex = 2;

// 匹配成功
const match = REGEX.exec('xaya');

// 在3号位置匹配成功
match.index // 3

// 下一次匹配从4号位开始
REGEX.lastIndex // 4

// 4号位开始匹配失败
REGEX.exec('xaya') // null

在g修饰符的情况下,初始匹配位置是2号位,也就是y字符,与正则表达式的a字符不符,其自动继续向下搜索至3号位,匹配成功

const REGEX = /a/y;

// 指定从2号位置开始匹配
REGEX.lastIndex = 2;

// 不是粘连,匹配失败
REGEX.exec('xaya') // null

// 指定从3号位置开始匹配
REGEX.lastIndex = 3;

// 3号位置是粘连,匹配成功
const match = REGEX.exec('xaya');
match.index // 3
REGEX.lastIndex // 4

而在y字符情况下,2号位匹配不成功后,就不再向下搜索,终止了匹配

因此,y字符实际上隐含了头部匹配标志^,其设计的本意就是让匹配的标志^在全局匹配中都有效

在字符串的replace方法中使用y修饰符,一旦匹配失败,后续即使出现符合的子字符串,也不会被替换

const REGEX = /a/gy;
'aaxa'.replace(REGEX,'_');   //'--xa'

单单一个 y 修饰符对match方法,只能返回第一个匹配,必须与 g 修饰符联用,才能返回所有匹配

'a1a2a3'.match(/a\d/y);   // ["a1"]
'a1a2a3'.match(/a\d/gy);  // ["a1", "a2", "a3"]

在split方法中使用y修饰符,原字符串必须以分隔符开头,这意味着只要匹配成功,第一个成员肯定是空字符串

'x##'.split(/#/y);    //没有找到匹配
//['x##']
'##x'.split(/#/y);   //找到两个匹配
//['','','x']

后续的分隔符只要紧跟前面的分隔符才能被识别

'#x#'.split(/#/y);  //找到一个匹配
//['','x#']

s修饰符

正则表达式中,点.可以匹配任意单个字符,但行终止符除外,例如换行符(\n)、回车符(\r)。加入s修饰符,可以使点.匹配任意单个字符,包括行终止符。

/foo.bar/s.test('foo/nbar');    //true

可以使用dotAll属性检测正则表达式是否处于以上的模式,返回一个布尔值

const re = /foo.bar/s;
re.dotAll  //true

sticky和flags属性

可以通过sticky属性检测是否设置了y修饰符

var r = /hello\d/y;
r.sticky  //true

可以通过flags属性,返回正则表达式的修饰符

/abc/ig.source   //返回正则表达式的正文
//"abc"

/abc/ig.flags   //返回正则表达式的修饰符
//"gi"

后行断言

ES5只支持先行断言和先行否定断言,ES6引入后行断言

例如只匹配在美元符号后面的数字,要写成/(?<=\$)\d+/(先行断言),而只匹配不在美元符号后面的数字,要写成/(?<!\$)\d+/

/(?<=\$)\d+/.exec('Benjamin Franklin is on the $100 bill');   //["100"]
/(?<!\$)\d+/.exec('it’s is worth about €90');                  //["90"]

下面是使用后行断言进行字符串替换的例子,只有美元符号后面的foo字符串被替换

const re = /(?<=\$)foo/g;

'$foo %foo foo'.replace(re, 'bar');
// '$bar %foo foo'

后行断言的组匹配与正常情况也是不同的,原因在于后行断言是从右往左执行的

/(?<=(\d+)(\d+))$/.exec('1053') // ["", "1", "053"]
/^(\d+)(\d+)$/.exec('1053') // ["1053", "105", "3"]

在正常情况下,第一个捕获组为贪婪模式,因此为”105”,而第二个捕获组为”3”。而在后行断言中,由于执行顺序相反,得到的第一个捕获组为”1”(实际上其是第二个被执行的),而第二个捕获组为”053”(实际其是第一个被执行的)。

因此后行断言中向后引用,应该写在捕获组的前面,否则无法引用捕获组

/(?<=(o)d\1)r/.exec('hodor')  // null
/(?<=\1d(o))r/.exec('hodor')  // ["r", "o"]

上述的捕获组(o)的引用\1就写在了捕获组前面


Unicode属性类

ES2018引入一种新的类的写法\p{...}和\P{...},允许正则表达式匹配符合 Unicode 某种属性的所有字符。使用该类时,务必加上u修饰符,否则会报错

Unicode 属性类要指定属性名和属性值,格式为:

\p{UnicodePropertyName=UnicodePropertyValue}

对于某些属性,可以只写属性名,或者只写属性值

\p{UnicodePropertyName}
\p{UnicodePropertyValue}

下述代码匹配一个希腊文字母

const regexGreekSymbol = /\p{Script=Greek}/u;
regexGreekSymbol.test('π') // true

\P{…}是\p{…}的反向匹配,即匹配不满足条件的字符

匹配各种数字

const regex = /^\p{Number}+$/u;
regex.test('²³¹¼½¾') // true
regex.test('㉛㉜㉝') // true
regex.test('ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫ') // true

命名组匹配

ES6添加命名捕获组功能,可以在exec方法返回结果的groups属性上调用组名

const RE_DATE = /(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})/;

const matchObj = RE_DATE.exec('1999-12-31');
const year = matchObj.groups.year; // 1999
const month = matchObj.groups.month; // 12
const day = matchObj.groups.day; // 31

如果命名捕获组没有匹配,那么对应的groups对象属性将会是undefined

const RE_OPT_A = /^(?<as>a+)?$/;
const matchObj = RE_OPT_A.exec('');

matchObj.groups.as // undefined
'as' in matchObj.groups // true

有了命名组匹配,就可以使用解构赋值的方式快速获取到对应捕获组的值

let {groups: {one, two}} = /^(?<one>.*):(?<two>.*)$/u.exec('foo:bar');
one  // foo
two  // bar

字符串替换时,使用$<组名>引用命名组

let re = /(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})/u;

'2015-01-02'.replace(re, '$<day>/$<month>/$<year>')
// '02/01/2015'

replace方法的第二个参数也可以是函数,该函数的参数序列如下

'2015-01-02'.replace(re, (
   matched, // 整个匹配结果 2015-01-02
   capture1, // 第一个组匹配 2015
   capture2, // 第二个组匹配 01
   capture3, // 第三个组匹配 02
   position, // 匹配开始的位置 0
   S, // 原字符串 2015-01-02
   groups // 具名组构成的一个对象 {year, month, day}
 ) => {
 let {day, month, year} = args[args.length - 1];
 return `${day}/${month}/${year}`;
});

在正则表达式内部引用某个命名捕获组,可以使用\k<组名>的写法,其可以与数字引用同时使用


String.prototype.matchAll

如果一个正则表达式在字符串里面有多个匹配,现在一般使用g修饰符或y修饰符,在循环里面逐一取出

var regex = /t(e)(st(\d?))/g;
var string = 'test1test2test3';

var matches = [];
var match;
while (match = regex.exec(string)) {
  matches.push(match);
}

matches
// [
//   ["test1", "e", "st1", "1", index: 0, input: "test1test2test3"],
//   ["test2", "e", "st2", "2", index: 5, input: "test1test2test3"],
//   ["test3", "e", "st3", "3", index: 10, input: "test1test2test3"]
// ]

目前有个提案,增加了String.prototype.matchAll方法,可以一次性取出所有匹配,其返回一个遍历器,可以使用for...of循环取出结果

const string = 'test1test2test3';

// g 修饰符加不加都可以
const regex = /t(e)(st(\d?))/g;

for (const match of string.matchAll(regex)) {
  console.log(match);
}
// ["test1", "e", "st1", "1", index: 0, input: "test1test2test3"]
// ["test2", "e", "st2", "2", index: 5, input: "test1test2test3"]
// ["test3", "e", "st3", "3", index: 10, input: "test1test2test3"]

也可以将其转换为数组

// 转为数组方法一
[...string.matchAll(regex)]

// 转为数组方法二
Array.from(string.matchAll(regex));
利用HTML+CSS设计PPT:html-to-pptx实现自动化转换与可编辑输出 在办公自动化和前端开发领域,将网页技术应用于文档生成是一个重要的技术方向。其核心原理在于通过解析HTML/CSS的结构与样式,将其映射为目标文档的原生对象模型。这项技术的价值在于,它能够将Web技术栈强大的布局与样式能力(如Flexbox、CSS Grid)与办公软件(如Microsoft PowerPoint)的广泛兼容性和可编辑性相结合。在实际应用场景中,这种技术特别适合需要快速生成兼具设计感与实用性的演示文稿,例如数据报告、产品发布和营销材料。本文探讨的html-to-pptx项目正是这一思路的工程实 阅读详情

相关推荐

启动盘安装Win10完整指南:U盘制作、BIOS设置与分区排错

系统重装是解决电脑卡顿、系统崩溃、病毒残留等问题的基础操作,而U盘启动盘则是目前最主流的安装介质。其核心原理在于通过Rufus等工具,将原版ISO镜像写入U盘,并依据主板固件类型(UEFI或Legacy)选择对应的GPT或MBR分区表,确保引导程序能正确加载。掌握这些底层概念,不仅能提升安装成功率,还能避免因引导模式不匹配导致的黑屏、无法启动等问题。在实际应用中,无论是老旧电脑升级、硬盘更换,还是需要纯净的系统环境,制作一个可靠的启动盘都是必备技能。本文从备份数据、下载官方镜像讲起,逐步演示U盘制作、启动快

weixin_32667955的博客 340

ES6 —— 正则表达式

文章目录一、正则表达式概述二、正则表达式的特点三、正则表达式的创建四、测试正则表达式 test五、正则表达式的组成 一、正则表达式概述 什么是正则表达式:用于匹配字符串中字符组合的模式。在 JavaScript 中,正则表达式也是对象。 正则表达式通常用来检索、替换那些符合某个模式(规则)的文本。例如验证表单(匹配)、过滤页面中的一些敏感词(替换)、从字符串中获取我们想要的特定部分(提取)。 二、正则表达式的特点 灵活性、逻辑性和功能性非常的强。 可以迅速地用极简单的方式达到字符串的复杂控制。 邮箱

HuoZhiyan 的博客 2086

Geant4学习一:写一个简单程序

1、 基本介绍

ccwwNUAA的博客 7697

es6学习(三):正则表达式

一、正则表达式 1.1 概述: 1.1 1什么是正则表达式: 1.1.2 正则表达式的作用: 匹配、替换、提取 1.1.3 正则表达式的特点: 1.2 正则表达式在js中的使用 1.2 .1创建正则表达式。 1.2.2 测试正则表达式 1.3 正则表达式中特殊字符 1.3.1 边界符 ^和$一起,就是精确匹配 1.3.2 字符类 (1)[ ] 多选一、[a-z] a到z中的字符选一个。或者[a-zA-B0-9]、[a-zA-B0-9_-...

xuan971130的博客 523

用Arduino和FS-i6X遥控器,从零开始打造你的第一只仿生扑翼蝴蝶(附完整代码解析)

本文详细介绍了如何利用Arduino和FS-i6X遥控器从零开始制作仿生扑翼蝴蝶,包括硬件准备、电路连接、代码解析和调试技巧。通过完整的代码示例和参数说明,帮助读者快速掌握仿生机器人的制作要点,实现蝴蝶的自然飞行效果。

weixin_28727975的博客 309

R语言Rstudio突然无法启动且报错:ERROR system error 42 [str: 一, len: 3, from: UTF-8, to: ISO8859-1]...如何解决

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值 。

**My Coding Family** 2848

es6 正则

正则

qianyuge的博客 1064

《QGIS快速入门与应用基础》230:添加图例工具

本文系统讲解QGIS图例制作的核心方法与优化技巧。首先强调图例与地图框的绑定逻辑,提出三种绑定状态及适用场景。详细拆解三种图例添加方法:布局工具栏一键添加法(新手首选)、菜单栏添加法和右键快捷创建法,并给出单地图框和多地图框两种典型场景的规范技巧。重点解决新手常见的图例杂乱、样式不规范、内容脱节等问题,帮助用户从基础图例制作进阶到符合行业标准的专业图例设计。通过分步操作图示和实用技巧,使读者能够快速掌握图例创建的核心流程与优化方法。

LuckyHanMo的博客 549

ES6—正则表达式

正则表达式 RegExp构造函数 RegExp构造函数第一个参数是正则对象,第二个参数可以指定修饰符,且覆盖原有的修饰符 new RegExp(/abc/efg,'i').flags // "i" 字符串正则方法 es6将与正则相关的方法全部定义在RegExp对象上 match() replace() search() split() u修饰符 即“Unicode模式”,正确处理大于\uFFF的Unicode字符 点字符 对于码点大于0xFFFF的Unicode 字符,加上u修饰符才能识别 Unico

Gaozier的博客 952

【数字IC刷题】华为海思数字IC笔试题(1)详细解析版

【数字IC刷题】华为海思数字IC笔试题(1)详细解析版

MoorePlus的博客 4221

Altium Designer应用技巧5: Altium Live账号的获得

为了更好的应用Altium Designer,我们需要得到一个Altium Live账号,但从其英文或者中文官方网站取得,都需要7个工作日的时间,而且对于个人用户来说,并不是100%都能够获取到。本文介绍一种,从俄罗斯Altium官方网站获取账号的方法,可以立即使用。     1、点击http://live.altium-ru.com/#Join网址进入俄罗斯Altium官方网站,Altiu

snmplink的博客 1万+

ES6--正则表达式

创建正则表达式规则的四种方法 var regex = new RegExp('xyz', 'i'); var regex = new RegExp(/xyz/i); var regex = new RegExp(/xyz/, 'i'); var regex = /xyz/i; 在es5中,RegExp构造函数的两种传参方式:第一种第一个参数是字符串,第二个参...

div23454的博客 385

RV1126 ROS2环境交叉编译及部署(基于官方Docker)

我的所有基于`RV1126`的机器人项目都是在`Ubuntu22.04`下进行开发的,在`Ubuntu18.04 Docker`容器中实现`RV1126`的`SDK`编译,详细可参考我之前的博客[《Ubuntu20.04/22.04下Docker方案实现多平台SDK编译》第2章](https://blog.youkuaiyun.com/w1820020635/article/details/147342689),`RV1126`的`ROS1`部署没什么难度,可以参考我之前的博客,这里记录了`ROS2`交叉编译及问题解决

w1820020635的博客 1143

黑马程序员前端JavaScript高级——ES6学习笔记

黑马程序员前端教程的PPT和代码学习笔记,里面包含了面向对象的编程思想,以及构造函数,类和对象、原型链、箭头函数、数组和字符串新增方法、函数递归、深拷贝浅拷贝、正则表达式等知识点。本文是对优快云其他博主记录的一个补充,因为黑马也是今年才陆续补充一些知识点的视频的,本文将其收录于此,雷同勿怪。

weixin_44566194的博客 3720

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

ES6详细介绍及使用

ES6中的export和import介绍 一、ES6概念及发展史 1、ES6概念 WSC中:ECMAScript 6.0(以下简称ES6)是 JavaScript 语言的下一代标准,已经在 2015 年 6 月正式发布了(所以也被叫作ES2015)。它的目标,是使得 JavaScript 语言可以用来编写复杂的大型应用程序,成为企业级开发语言。 2、ES6发展史 版本 时间 描述 ECMA-262/ ...

小仙儿 9611

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

前端入门一之ES6--递归、浅拷贝与深拷贝、正则表达式、es6、解构赋值、箭头函数、剩余参数、String、Set

大括号 量词符 重复次数中括号 字符集合 任选一小括号 优先级// 中括号// 大括号// 它只是让c 重复3次 abccc// 小括号//它是让 abc 重复3次在线测试正则表达式:https://c.runoob.com/一项脚本语言的标准。

羊小猪~~的博客 1542

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

ES6前端学习笔记

标准委员会最终决定,标准在每年6月正式发布并作为当年的正式版本,接下来的时间里就在此版本的基础上进行改动,直到下一年6月草案就自然变成新一年的版本,这样一来就无需以前的版本号,只要用年份标记即可。:粘连修饰符,确保匹配必须从剩余的第一个位置开始全局匹配(与。定义:对一类具有共同特征的事物的抽象(构造函数语法糖)互不兼容,目前解决方案是将两者分开,采用各自的加载方案。,才用了一年,按照这样的定义下去,那不是很快就。(返回的正则表达式会忽略原正则表达式的修饰符),所有在类中定义的属性方法都会被实例继承。

实力派,无需多言! 1137

ES6学习笔记(四)

补充学习一下 ES6 正则扩展 方面的知识,包含以下内容: 1、ES6 认可了构造函数的一种带修饰符参数的特殊写法; 2、在字符串的四个正则方法内调用正则对象的实例方法,使得正则方法与RegExp对象绑定; 3、u、y、s修饰符的引入; 4、后行断言; 5、新增具名组匹配,并可以通过 \k<组名> 的写法去引用具名组; 6、正则匹配索引的提案,通过indices属性获取每个组匹配的开...

华工Web练习生 3617

〖大前端 - ES6篇①〗- ES6简介

ECMAScript就是由ECMA这个标准化组织制定的一个语言标准,具体来说就是ECMA这个标准化组织规定了我们的语法和api

易编橙 · 终身成长社群,相遇已是上上签! 1988

JavaScript基础==>ES6扩展

一、对象操作 Object.assign.(obj, objitem) Object.assgin() //es6方法 将源对象合并到目标对象 Object.assign 在 对象只有一层时为深度克隆 否则 为浅克隆 Object.assign(newObj,a,b,c) // 第一个参数是个对象后面都是源对象也就是被合并的对象 ......

weixin_46037781的博客 1502

ES6和ES5的区别和扩展

ES6和ES5的区别和扩展一 let和const1 let与var的区别2 const常量3 标题函数声明二 变量的解构赋值1 数组解构2 对象解构3 字符串的解构赋值4 数值和布尔值的解构赋值5 函数参数的解构赋值三、字符串的扩展1 加强了对 Unicode 的支持2 JSON.stringify() 的改造3 模板字符串4 新增方法String.fromCodePoint()String.raw()实例方法:codePointAt()实例方法:normalize()实例方法:includes(), st

sunsunla的博客 700

Javascript-ES6扩展写法

String类在ES6indexOf():从某个位置左往右或从右往左查找字串索引。endsWith():查找是否以某个字符串开头或结尾。Includes():从某个位置开始,判断字符串是否为子串。扩展运算符两种创建数组的方法:Array.of()方法:将一组指定的值转换为数组。方法:将类数组对象或者可迭代对象转换为数组。六种数组查找方法:indexOf()方法:查找指定元素的下标值。find()findLast()方法:返回数组中满足指定条件的元素的值,未找到则返回undefined。

一个前端人,游戏开发魂。 762

ES6-ES13学习笔记

ES6 规定,默认的 Iterator 接口部署在数据结构的Symbol.iterator属性,或者说,一个数据结构只要具有Symbol.iterator属性,就可以认为是“可遍历的”(iterable)。Proxy如其名, 它的作用是在对象和和对象的属性值之间设置一个代理,获取该对象的值或者设置该对象的值, 以及实例化等等多种操作, 都会被拦截住, 经过这一层我们可以统一处理,我们可以认为它就是“代理器”在一般情况下,对象的引用是强引用的,这意味着只要持有对象的引用,它就不会被垃圾回收。

IIIIIAN 2002

ES6正则表达式扩展

构造函数   在 ES5 中,RegExp构造函数的参数有两种情况。   第一种情况是,参数是字符串,这时第二个参数表示正则表达式的修饰符(flag) var regex = new RegExp('xyz', 'i'); // 等价于 var regex = /xyz/i;   第二种情况是,参数是一个正则表示式,这时会返回一个原有正则表达式的拷贝 var

hezuohuoban882的博客 462

ES6 学习笔记2—4字符串的扩展、5字符串的新增方法、6正则的扩展

本章介绍 ES6 对字符串的改造和增强,下一章介绍字符串对象的新增方法。

BlackWolfSky的博客 400

Web前端学习笔记17:JavaScript高级_正则表达式_ES6语法

文章目录JavaScript高级第04天笔记1.正则表达式概述1.1什么是正则表达式1.2 正则表达式的特点2.正则表达式在js中的使用2.1正则表达式的创建2.2测试正则表达式3.正则表达式中的特殊字符3.1正则表达式的组成3.2边界符3.3字符类3.3.1 [] 方括号3.3.2量词符3.3.3用户名表单验证3.3.4 括号总结3.4预定义类3.5正则替换replaceES6语法目标ES6相关概念(★★)什么是ES6为什么使用 ES6 ?ES6新增语法let(★★★)let声明的变量只在所处于的块级有效

JasonYangQ的博客 1万+
上一篇: 正则表达式
下一篇: ES6学习笔记5 数值的扩展
PAT-python-zjw
博客等级 码龄10年 381粉丝 408原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值