JavaScript实现对象深拷贝的方法(5种)

  • 知识回调(不懂就看这儿!)
  • 场景复现
  • 核心干货
    • 举例引入
    • 关于RegExp对象
      • 语法
      • 修饰符——区分大小写和全局匹配
      • 方括号——查找某个范围内的字符
      • 元字符——拥有特殊含义的字符
      • 量词
      • RegExp对象方法
      • 支持正则表达式的String对象的方法
      • RegExp对象属性
    • 正则表达式实例
      • 不区分大小写查找单词
      • 全文查找
      • 全文查找且不区分大小写
      • test()方法
      • exec()方法

知识回调(不懂就看这儿!)

知识专栏 专栏链接
JavaScript知识专栏 https://blog.csdn.net/xsl_hr/category_12024214.html?spm=1001.2014.3001.5482

有关JavaScript的相关知识可以前往JavaScript知识专栏查看复习!!

场景复现

最近在对***前端的深入学习过程***中,再次接触到了正则表达式,以前写正则表达式基本都是一些常用的、可以直接从网上的案例中copy的,但是学习正则应该能够自己根据场景写出自己手搓的表达式。因此本文以正则表达式与正则匹配为主要内容,展开详细的讲解。

核心干货

举例引入

  • /a{1,3}/ 不匹配 “cndy”,匹配 “candy,” 中的 “a”,“caandy,” 中的两个 “a”,匹配 “caaaaaaandy” 中的前面三个 “a”。
  • /a{2}/ 不匹配 “candy,” 中的 “a”,但是匹配 “caandy,” 中的两个 “a”,且匹配 “caaandy.” 中的前两个 “a”。
  • /a{2,}/ 不匹配 “candy” 中的 “a”,但是匹配 "caandy,"中的两个 “a”,且匹配 "caaandy"中的前两个 “a”,后两个 “a”。

关于RegExp对象

  • 正则表达式是描述字符模式的对象。
  • 正则表达式用于对字符串模式匹配及检索替换,是对字符串执行模式匹配的强大工具。

语法

var patt=new RegExp(pattern,modifiers);

或者更简单的方式:

var patt=/pattern/modifiers;
  • pattern(模式) 描述了表达式的模式
  • modifiers(修饰符) 用于指定全局匹配、区分大小写的匹配和多行匹配

注意:当使用构造函数创造正则对象时,需要常规的字符转义规则( 在前面加反斜杠 )

比如,以下是等价的:

var re = new RegExp("\\w+");
var re = /\w+/;

修饰符——区分大小写和全局匹配

方括号——查找某个范围内的字符

元字符——拥有特殊含义的字符

量词

RegExp对象方法

支持正则表达式的String对象的方法

RegExp对象属性

正则表达式实例

不区分大小写查找单词

var str = "lookup gungunxs";
var patt1 = /gungunxs/i;
document.write(str.match(patt1));

全文查找

var str="Is gungunxs handsome or not";
var patt1=/un/g;
document.write(str.match(patt1));

全文查找且不区分大小写

var str="Is gungunxs handsome or not";
var patt1=/u/gi;
document.write(str.match(patt1));

test()方法

var patt1=new RegExp("e");
document.write(patt1.test("The best things in life are free"));

当使用构造函数创造正则对象时,需要常规的字符转义规则(在前面加反斜杠 \)

var str = 'gungunxs';
var patt1 = new RegExp('\\w', 'g'); // 有转义作为正则表达式处理
var patt2 = new RegExp('\w', 'g');  // 无转义作为字符串处理
var patt3 =/\w+/g;  // 与 patt1 效果相同
document.write(patt1.test(str)) //输出 true
document.write("<br>")
document.write(patt2.test(str)) //输出 false
document.write("<br>")
document.write(patt3.test(str)) //输出 true

exec()方法

exec() 方法检索字符串中的指定值。返回值是被找到的值如果没有发现匹配,则返回 null

下面的示例是从字符串中搜索字符 “e” :

JS 正则表达式(正则匹配RegExp)相关推荐

  1. html正则表达式怎么写用户名非空,js通过正则匹配没有内容的空标签

    js 如何正则匹配没有内容的空标签并移除掉? 例如 等等 正则 /]*?)?>\s*?/ig html=' '+ '\n '+ '\n'+ '\n '+ '\n '+ '\n '+ '\n'+ ...

  2. 正则匹配数字和字母php,用php与js实现正则匹配数字和字母组合的密码

    这次给大家带来用php与js实现正则匹配数字和字母组合的密码,用php与js实现正则匹配数字和字母组合密码的注意事项有哪些,下面就是实战案例,一起来看一下. 本文实例讲述了正则匹配密码只能是数字和字母 ...

  3. JS 使用正则匹配字符串中所有大括号包含的数据,转换成数组形式

    JS 使用正则匹配字符串中所有大括号包含的数据,转换成数组形式 .match(/{[^}{]*?}/g)

  4. JS 正则表达式否定匹配(正向前瞻)

    引言 JS 正则表达式是 JS 学习过程中的一大难点,繁杂的匹配模式足以让人头大,不过其复杂性和其学习难度也赋予了它强大的功能.文章从 JS 正则表达式的正向前瞻说起,实现否定匹配的案例.本文适合有一 ...

  5. php正则匹配标点符号,js实现正则匹配中文标点符号的方法

    本文实例讲述了js正则匹配中文标点符号的方法.分享给大家供大家参考,具体如下: 运行效果截图如下: 具体代码如下: js正则匹配中文标点符号 function checkText() { var te ...

  6. JS正则表达式完全匹配字符

    js中 RegExp 对象使用 test() 来匹配正则表达式时,只要有子字符串能够匹配成功就会返回 true. 如果要当正则表达式完全匹配整个字符串时 test() 才返回true的话,可以在正则表 ...

  7. js正则表达式的匹配函数返回数组问题

    初衷是想使用js的match函数配合正则表达式来匹配正确的ip格式,出现问题 var reg = /^([1-9]|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(([0-9]|[ ...

  8. 14. Perl 正则表达式-正则匹配

    正则表达式(regular expression) 在Perl 里面通常也叫模式(Pattern). 正则表达式是用来匹配或不匹配某个字符串是否符合特定字符串模板的,也可以实现字符串的替换. 1. 正 ...

  9. JS正则表达式字符匹配

    正则表达式字符匹配 这是阅读<JavaScript正则表达式迷你书>后整理的一些笔记. 正则表达式是匹配模式,要么匹配字符,要么匹配位置. 下面主要介绍匹配字符的情况,匹配位置的情况我也正 ...

最新文章

  1. linux tcp重传多会导致软中断在各个核很不均匀么?
  2. 李飞飞点赞「ARM」:一种让模型快速适应数据变化的元学习方法 | 开源
  3. mysql插入第一_mySQL教程 第5章 插入 更新与删除数据
  4. python私有方法应用场景_Python私有属性私有方法应用实例解析
  5. iphone-common-codes-ccteam源代码 CCUIKit.m
  6. MAVEN构建的各个环节及常用maven命令
  7. SpringMVC-快速入门
  8. 怎么高效刷LeetCode?
  9. OS X 10.11 安装Cocoapods
  10. vue 打开html流_解决Vue项目打包后打开index.html页面显示空白以及图片路径错误的问题...
  11. 19-[模块]-xml
  12. 添加游戏到游戏浏览器中的小工具
  13. 瑞元双玻组件助力浙江多座分布式电站高效运行
  14. 信息安全学习笔记--CSRF
  15. 计算机图形学-画太极
  16. 原生微信小程序下拉刷新和加载动画
  17. 多彩M618鼠标 拆解相关
  18. Java语言,基于TCP编写一个简单的Client/Server 网络应用程序。
  19. mysql数据库基础:存储过程和函数
  20. 华为od机考真题-数大雁,1419,数青蛙

热门文章

  1. RTD2785T RTD2785R 2K eDP屏驱动芯片介绍
  2. 匈牙利算法原理与Python实现
  3. PicoZense TOF 深度摄像头技术参数 | AIRCamera,DCAM710,DCAM100
  4. 常用端口与udp协议
  5. 2G,3G,4G网络架构浅谈——4G(LTE)
  6. 宝塔安装Jdk1.8
  7. 链路聚合(二层链路聚合划分)
  8. 二进制文件方式安装k8s 1.21
  9. 实施工程师主要工作职则
  10. 基于树莓派和tensorflow的物体识别