ES6-13 正则方法、修饰符yus、UTF_16编码方式

修饰符

  • m multiLine 对于str中含\n的情况
  • g global
  • i ignoreCase

元字符

  • 反斜杠加转义
元字符含义简写
\w匹配字母、数字、下划线。等价于’[A-Za-z0-9_]’。word
\W匹配非字母、数字、下划线。等价于 ‘[^A-Za-z0-9_]’。
\s匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。space
\S匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。
[\w\W]所有字符
\d匹配一个数字字符。等价于 [0-9]。digit
\D匹配一个非数字字符。等价于 [^0-9]。
\b匹配一个单词边界,也就是指单词和空格间的位置。bridge border
\B匹配非单词边界。

ES6新增部分

1. 声明正则的变化方式

var reg = new RegExp('xyz', i)
// 也可以 修饰符以第二个参数为准
var reg = new RegExp(/xyz/, 'i') 
// 等价于ES5
var reg = /xyz/i

2. 字符串上的正则方法调整

在这里插入图片描述

// ES6,当调用字符串方法match时,本质上调用的是RegExp原型上的[Symbol.match]
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]

3. 新增的修饰符u y s

修饰符含义简写
\y再次匹配的时候看是否粘粘的,是全局的sticky
\u识别D800以后的4字节文字,会将4字节看做1个字来匹配unicode
\
\

在这里插入图片描述

y

<script>(function () {const str = "aaa_aa_a";const reg2 = /a+/yconsole.log(reg2.exec(str))console.log(reg2.exec(str))console.log(reg2.exec(str))console.log(reg2.exec(str))})();
</script>
<script>(function () {console.log('--------------脚本2-----------------')const str = "aaa_aa_a";const reg1 = /a+/gconsole.log(reg1.exec(str))console.log(reg1.exec(str))console.log(reg1.exec(str))console.log(reg1.exec(str))})();
</script>

u

console.log(/^\uD83D/.test('\uD83D\uDC2A')) // true
console.log(/^\uD83D/u.test('\uD83D\uDC2A')) // false
console.log(/^.$/.test('\uD83D\uDC2A')) // false .也匹配不到
console.log(/^.$/u.test('\uD83D\uDC2A')) // true
document.body.innerText = '\uD83D\uDC2A'

在这里插入图片描述

s 让.能代表一切

.不能代表的\n \rU2028(行分隔符) U2029(段分隔符)

console.log(/foo.bar/s.test('foo\nbar')) // true
console.log((/foo.bar/s).dotAll)// true

UTF_16

  • Unicode分区定义,ASCII是Unicode的一部分
  • 每个区存放2的16次方个(2字节,每个字节8位)U+0000 到 U+FFFF 第一个平面(BMP平面)
  • 整个Unicode分为17个平面
  • 特殊的汉字,2个字节表示不了时,用4个字节
  • U+D800 到 U+FFFF没有对应的字符
    在这里插入图片描述
// 一定要大于D800
document.body.innerText = '\uD842\uDFB7' // 𠮷
document.body.innerText = '\uD866\uDF99' // 𩮙
'瀛'.charCodeAt(0) // 28699
(28699).toString(16) // "701b"
document.body.innerText = '\u701b' // 瀛

用码点显示emoji

emoji对照表
在这里插入图片描述
在这里插入图片描述

(/\u{1F60D}/u).test('😍') // true
(/a{2}/).test('aa') // true 这里的{}表示量词

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/251000.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

svn文件大小类型限制,提交必须加多少字的说明

#!/bin/shREPOS"$1" TXN"$2" #此处更改大小限制&#xff0c;这里是5M MAX_SIZE5242880 #此处增加限制文件后缀名 FILTER\.(zip|rar|o|obj|tar|gz)$SVNLOOK/usr/bin/svnlookLOGMSG$SVNLOOK log -t "$TXN" "$REPOS" | wc -cif [ "$…

cmd窗口快速定位到具体文件夹方法

在用Python进行机器实战时&#xff0c;打开cmd窗口后&#xff0c;总是到定位到kNN.py所在文件夹才能Python&#xff08;否则import kNN失败&#xff09;&#xff0c;每次都要输入地址非常麻烦 这里介绍一个cmd窗口快速定位到具体文件夹方法&#xff1a; 按住Shift键右击鼠标打开…

算法 --- 罗马数字转整数

解体思路: 1.写一个对象trans用于保存罗马和数字之间的映射关系 2.重点在于当数值小的出现在数值大的左边时,会减去该数,出现在右边时会加上该数,因此需要与后面的进行比较 3.在得到s时,首先给它转换成字符串,并在末位加一个0 /*** param {string} s* return {number}*/ var r…

正则 - 阮一峰

学习地址 一 正则实例方法 1. test 正则实例.test返回布尔值 var r /x/g; var s _x_x;r.lastIndex // 0 r.test(s) // truer.lastIndex // 2 r.test(s) // truer.lastIndex // 4 r.test(s) // false死循环&#xff0c;因为while循环的每次匹配条件都是一个新的正则表达式…

LintCode 6.合并排序数组 ||

import org.junit.Test;import java.util.Arrays;public class MergeSort {/*** param A: sorted integer array A* param B: sorted integer array B* return: A new sorted integer array* <p>* 合并排序数组 II* 合并两个排序的整数数组A和B变成一个新的数组。* <p…

算法 --- 有效的括号

解题思路: 1.对括号分别赋值(左括号大于0,右括号小于0),方便后期比较 2.使用栈,对于大于0的字符串入栈,对于小于0的字符串,检查栈中是否有元素,若没有返回false,否则拿出栈顶的一个元素,和现在的元素进行比较 /** * param {string} s * return {boolean} */ var isValid func…

ES6-14 Unicode表示法、字符串方法、模板字符串

Unicode表示法 本身能正常识别的&#xff0c;加{}也能识别&#xff0c;花括号内的内容表示码点 parseInt(0061,16) // 十进制的97&#xff0c;97在ASCII码中对应a console.log(\u0061) // a console.log(\u{0061}) // a console.log(\u{61}) // a原型上方法 codePointAt(十进…

对 js 高程 Preflighted Reqeusts 的理解

看JS高程遇到 Preflighted Reqeusts不大理解&#xff0c;遂百度下&#xff1a;转自&#xff1a;http://todoit.me/ajax-preflight/最近在做一个 VUE 的项目的时候, 和后端的小伙伴对接口, 想方便开发, 于是要求后端的小伙伴在所有的接口都加上跨域的许可 (Access-Control-Allow…

算法 --- 删除数组中重复项

解题思路: 如果输入的数组长度为1,则返回该数组否则(len>2),使用i记录当前待插入的位置,j记录下一个与nums[i]不相等的位置,leng为待返回数组的长度当nums[i] ! nums[j]时,把j位置的值nums[j]放在i1位置.同时i,j /*** param {number[]} nums* return {number}*/ var remov…

如何理解 Linux 中的 load averages

原文&#xff1a;https://mp.weixin.qq.com/s?src11&timestamp1533697106&ver1047&signaturepoqrJFfcNABv4biKKpa4mZdIW7No2Wo1F5sbZL7ggoVS2GqcSqwQQ8hMulAmezT*zL*klB-eE5BeMyNuyjuIH7YgkBAN25i6*ahhEpWyxqx6vPct-Vr7q7AU0YGe-F*l&new1 http://blog.scoutap…

Jsp+Servlet+MYSQL注册登录案例(界面难看,ε=(´ο`*)))唉)

注册登录界面尤为常见&#xff0c;我的界面尤为难看&#xff0c;勉为其难的写吧&#xff0c;前端不熟就是这样。。。 这个案例运用到了: 1.Jsp动态页面--->动态页面 2.Servlet逻辑判断后台---->实现界面与数据库/业务的连接&#xff0c;简而言之&#xff0c;起承转合。PS…

ES6-15 map与set

Promise、Proxy、Map、Set这些ES6新增的api无法用babel实现语法降级&#xff0c;需要使用到polyfill Set 成员是唯一的&#xff0c;不能重复有iterator接口&#xff0c;可迭代具有iterator接口的所有类型&#xff0c;都能作为new Set()的参数&#xff0c;如类数组、数组 con…

jquery --- DOM操作、表单元素的初始化

1.获取ul里第2个li节点: var $li_two $("ul li:eq(1)"); // 获取该节点的内容 var $li_two_txt $li_two.text();2.获取p元素节点的title属性: var $para $("p"); var p_title $para.attr("title");3.创建2个li节点,并添加道ul中: var $li…

Jquery中post与get之间的区别详细介绍

1:GET访问浏览器认为是等幂的 GET访问浏览器认为是等幂的&#xff0c;就是一个相同的URL只有一个结果&#xff0c;相同是指整个URL字符串完全匹配。所以&#xff0c;第二次访问的时候&#xff0c;如果URL字符串没变化 浏览器是直接拿出了第一次访问的结果&#xff1b; POST则认…

LeetCode 424. Longest Repeating Character Replacement

原题链接在这里&#xff1a;https://leetcode.com/problems/longest-repeating-character-replacement/description/ 题目&#xff1a; Given a string that consists of only uppercase English letters, you can replace any letter in the string with another letter at mo…

ES6-16 WeakMap与WeakSet、proxy与reflect

WeakMap/WeakSet 原型上不存在遍历方法(没有部署iterator接口)成员只能是对象垃圾回收机制不考虑对成员对象的应用 WeakSet/WeakMap 中的对象都是弱引用&#xff0c;即垃圾回收机制不考虑 WeakSet 对该对象的引用&#xff0c;也就是说&#xff0c;如果其他对象都不再引用该对象…

jquery--- 属性和样式的操作 设置和获取HTML、文本和值、焦点事件

1.获取p元素的title属性: var title $("p").attr("title");2.给p元素加title属性(值为:栗子)和date属性(值为:2019/7/15): $("p").attr("title":"栗子", "date":"2019/7/15");3.删除p中的title属性:…

day9

前方高能---初识函数 一. 什么是函数 函数:对代码块和功能的封装和定义. 二. 函数的定义,函数名,函数体,以及函数的调用 def 函数名(): 函数体 函数体:就是函数被执行之后要执行的代码. 三, 函数的返回 执行完函数之后,我们可以使用return来返回结果. 函数中return的使用: 1.函…

MySQL 数据库索引

数据库索引在数据库中、索引使数据库程序无须对整个表进行全表扫描就可以在其中找到所需的数据&#xff1b;数据库中的索引是某个表中一列或者若干列值的集合、以及物理标识这些值的数据页的逻辑指针清单&#xff1b;MySQL 索引的增删查SQL 语句效率的分析索引的作用&#xff1…

ES6-17 class与对象

class 模拟类的方式语法糖&#xff08;把以前的写法换了一个方式&#xff09; 类内部的方法是不可枚举的 ES5用Object.assign拓展的原型属性是可枚举的 function Point(x, y) {this.x x;this.y y; } // 这样定义的原型上方法eat\drink是可枚举的 Point.prototype Object…