前言

最近遇到一个线上bug,小程序富文本编辑器的图片无法显示出来,查看报错发现是PC端上传图片时使用的是base64格式的图片,测试的时候传的图片都是比较小的图片,所以没有问题。一到线上,用户传的图片都PS处理过的大图,小程序富文本解析的时候由于过长会自动添加\r\n换行符,这样就导致图片显示不出来,百度说用正则把所有的\r\n替换成空字符串就行,就这么简单的正则居然都写不出来,突然意识到该学一下正则了,今天正好有空就来学习一下正则。

1.模糊匹配

模糊匹配分为两种,一种是匹配的字符个数不确定,如:{m,n}表示出现的次数在m和n之间;一种是匹配的的字符不确定,但是长度确定,如:[abc]。注:{}表示区间,()表示分组.[]表示可以选取的值

let reg = /ab{1,8}/g  // 表示全局匹配
let str = 'ab abb abbbbb'
console.log(str.match(reg)) // [ 'ab', 'abb', 'abbbbb' ]let reg = /a[bcd]e/g
let str = 'abc abce ace ade'
console.log(str.match(reg)) // [ 'ace', 'ade' ] 中间的值只能从bcd中选一个

2.正则常用字符组

1).[]是最常用的字符组,表示可以从中选取的值,可以全部枚举,也可以使用-表示连续范围,[123456789][1-9]的意思是一样的,[abcde][a-e]也相同
2).^符号,表示除了^之后的字符都可以

let reg = /ab[^cde]c/g
let str = 'abcc abbc abfc abdc'
console.log(str.match(reg)) // [ 'abbc', 'abfc' ]

3.常见的缩写

1). \d表示数字[0-9]
2). \D表示除了数字之外的任意字符,即[^0-9]
3). \w表示数字字母下划线,即[0-9a-zA-Z_]
4). \W表示除了数字字母下划线之外的字符,即[^0-9a-zA-Z_]
5). \s表示表示空白符,包括空白符、水平制表符、垂直制表符、换行符、回车符、换页符,即[\t\v\n\r\f]
6). \S表示非空白符,即[^\t\v\n\r\f]
7). .表示通配符,可以匹配除了换行符、回车符、换页符之外的任意字符
8). {m,}表示可以匹配m到无限次,没有逗号{m}表示只能匹配m次
9). ? 匹配0-1次,有或者没有
10). +匹配1到n次
11). *匹配任意次

let reg = /\d{1,3}/g  // 匹配1到三个数字
const str = 'abc123 abc1 abc12 abc1234'
console.log(str.match(reg))  // [ '123', '1', '12', '123', '4' ] 1234被分成了两次let reg = /abc(\d{1,3})?/g
let str = 'abc1 abc23 abc765 abc abc123456'
console.log(str.match(reg)) // [ 'abc1', 'abc23', 'abc765', 'abc', 'abc123' ]let reg = /abc(\d{1,3})+/g
let str = 'abc1 abc23 abc765 abc abc123456'
console.log(str.match(reg)) [ 'abc1', 'abc23', 'abc765', 'abc123456' ]

4.分支

多个分支之间使用|分割,表示从几个分支中任选一个就行。

 let reg = /(abc{1,3})+|(123)+/glet str = 'abc abcabc abcabcabc abc123 123 123123'console.log(str.match(reg)) // [ 'abc', 'abcabc', 'abcabcabc', 'abc', '123', '123', '123123' ]

这些就是今天学习的内容,最简单的正则入门,学会这些就不会连匹配一个换行符都写不出来了,当然高深的写法还是得靠百度。

Javascript正则入门相关推荐

  1. JavaScript从入门到放弃 -(六)正则表达式

    正则表达式 1. 正则表达式概述 1.1 什么是正则表达式 1.2 正则表达式的特点 2. 正则表达式在JavaScript中的使用 2.1 创建正则表达式 2.1.1 通过调用 RegExp 对象的 ...

  2. BCSP-玄子前端开发之JavaScript+jQuery入门CH13_表单校验

    BCSP-玄子前端开发之JavaScript+jQuery入门CH13_表单校验 4.13 表单验证 4.13.1 为什么要表单验证 保证输入的数据符合要求 减轻服务器的压力 [外链图片转存失败,源站 ...

  3. 视频教程-JavaScript从入门到进阶视频课程-JavaScript

    JavaScript从入门到进阶视频课程 南京大学软件工程硕士,全栈开发工程师,全栈讲师. 曾就职于中软国际.擎天科技.华为等公司,擅长Java开发.Web前端.Python爬虫.PHP等领域技术.从 ...

  4. 视频教程-javascript零入门实战系列-JavaScript

    javascript零入门实战系列 7年php开发经验,国内某大型培训机构项目经理,曾授课程:php,ecshop二次开发,ThinkphpBootstrap商城,html,html5,css,css ...

  5. JavaScript基本入门教程

    JavaScript基本入门 一.JavaScript语法详解 1.JavaScript的组成 ECMAScript(核心):规定了JS的语法和基本对象 DOM文档对象模型:处理网页内容的方法和接口, ...

  6. JavaScript从入门到精通[文章列表联接]

    ·JavaScript从入门到精通:更复杂的交互 (1月30日10:7) ·JavaScript从入门到精通:Web页面信息交互 (1月30日10:3) ·JavaScript从入门到精通:窗口及输入 ...

  7. JavaScript快速入门(四)——JavaScript函数

    函数声明 之前说的三种函数声明中(参见JavaScript快速入门(二)--JavaScript变量),使用Function构造函数的声明方法比较少见,我们暂时不提.function func() { ...

  8. JavaScript从入门到放弃 -(七)ES6

    目录 1. ES6相关概念 1.1 什么是 ES6 ? 1.2 为什么使用 ES6 ? 2 ES6新增语法 2.1 新增关键字 2.1.1 let 关键字 小结 2.1.2 const 关键字 小结 ...

  9. JavaScript从入门到放弃 -(五)函数进阶(高级用法)

    目录 1. 函数的定义和调用 1.1 函数定义的3种方式 1.2 函数调用方式(常见的6种) 1.2.1 普通函数的调用 1.2.2 对象中的函数调用 1.2.3 构造函数的调用 1.2.4 DOM元 ...

最新文章

  1. 【数学专题】 筛质数、分解质因数和快速幂
  2. css3弹性盒子模型之box-flex(--)
  3. 华为三层交换机(5328)DHCP中继应用配置实例
  4. 一条诡异的insert语句
  5. 2017-06-09 问题
  6. 微信公众号手机无法直接下载APK文件是怎么回事
  7. 安全设置IIS的15个方法
  8. 通过经度纬度得到距离
  9. (百万浏览量!)超详细MySQL安装及基本使用教程(史上最详细)
  10. 使用Api分析器与Windows兼容包来编写智能的跨平台.NET Core应用
  11. mac chrome 跨域
  12. 阿里巴巴合伙人闻佳:创新背后的文化与组织
  13. Java校招笔试题-Java基础部分(三)
  14. html目录清华,清华大学HTML、《网页设计与制作》讲义.ppt
  15. java中的DES,AES,BASE64,MD5和Cipher类\MessageDigest类
  16. 20191016:(leetcode习题)寻找两个有序数组的中位数
  17. 怎么学习iOS,如何学习iOS开发?
  18. IEEE Transactions on Industrial Informatics(TII)投稿指导
  19. arcgis 空间交集 计算_基于ArcGIS的GIS缓冲区与叠加分析的综合应用——以大型商场选址为例...
  20. Linu安装MySQL

热门文章

  1. 深度学习之图像分割(语义分割)
  2. jQuery---解除事件
  3. css cursor 禁用 图标 cursor: not-allowed;
  4. Uncaught SyntaxError: Unexpected token {
  5. musicbox使用方法_使用Pi MusicBox收听流音乐
  6. linux中shmget函数
  7. Pages、Numbers或 Keynote无法添加媒体?
  8. python文档生成工具pydoc
  9. 【Python快排】快速排序优化
  10. Teechart图表教程:使用向导创建图表