博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
正则---基础
阅读量:5988 次
发布时间:2019-06-20

本文共 2811 字,大约阅读时间需要 9 分钟。

hot3.png

1、创建

// 字面量var partten = /^[0-9]$/// 构造函数创建var partten = new RegExp('^[0-9]$')

2、字符

[...]  // 匹配符合中括号内的任意字符[^...]   // 匹配任意非中括号内的字符[\w]     // 等价于 [a-zA-Z0-9_][\W]     // 等价于 [^a-zA-Z0-9_][\d]     // 等价于 [0-9][\D]     // 等价于 [^0-9][\s]     // 任何空白字符[\S]     // 任何非空白字符

3、重复匹配次数

{n,m}    // 匹配n-m次{n,}     // 匹配至少n次{n}      // 匹配 n 次?        // 匹配0或1次 相当于 {0,1}+        // 匹配 1 及以上次数  相当于{1,}*        // 匹配 0 及以上次数  相当于{0,}

4、或 |

[a|b]    // 匹配 a 或 b

5、锚

^        // 匹配字符串开始 和行的开头$        // 匹配字符串结束 和行的结束

6、修饰符

i    // 不区分大小写g    // 全局匹配 即找到所有匹配项,而不是遇见匹配值就停止m    // 多行模式 即在到达一行文本末尾时还会继续查找下一行中是否存在与模式匹配的项。

7、字符串的4种正则方法

search(regexp)

/* * 接收参数为正则表达式,不支持全局g  * 若传入参数不是正则表达式 则首先会通过RegExp构造函数转换为正则 * 返回首次匹配处的索引值 若不存在返回-1   */-------------------------------------------------------------------string.search(/^\d$/i); // ===>search() 'thIs is a string'.search(/is/g);      //  ===>5'thIs is a string'.search(/is/i);    //  ===>2

replace(regexp, 要替换成的string)

/* * 接收参数 第一个为正则表达式,第二个为要替换成的字符串 也可以是函数,计算返回动态的字符串 支持全局g * 若第一个参数不是正则表达式 是字符串,与search不同,而是直接匹配这个字符串 * 返回首次匹配处的索引值 若不存在返回-1   */string.replace(/javascript/gi,'javaScript')  //===> 将全局不区分大小写的JavaScript字符串替换成 javaScript

match(regexp)非全局匹配时与正则对象方法的exec返回结果很像

/* * 最常用的string正则方法 * 接收参数 为正则表达式 * 返回匹配结果组成的数组   * 如果正则没有g匹配符,则返回数组第一个为完整匹配元素,其他存放用圆括号括起来的与字符串相匹配的子串 */'this is a number 1 or 123 or 98 0 9 is 67'.match(/\d+/g)// ====> ["1", "123", "98", "0", "9", "67"]'this is a number 1 or 123 or 98 0 9 is 67'.match(/\d+/)// ====> ["1", index: 17, input: "this is a number 1 or 123 or 98 0 9 is 67"]'this is a number 1 or 123 or 98 0 9 is 67'.match(/(\ )\d+/)// ====> [" 1", " ", index: 16, input: "this is a number 1 or 123 or 98 0 9 is 67"]'this is a number 1 or 123 or 98 0 9 is 67'.match(/(\ )\d+/g)// ====> [" 1", " 123", " 98", " 0", " 9", " 67"]

split(regexp)

/* * split()可以接受一个正则参数 */'this is a number 1 or 123 or 98 0 9 is 67'.split(/\s|i/)// ===> ["th", "s", "", "s", "a", "number", "1", "or", "123", "or", "98", "0", "9", "", "s", "67"]'this is a number 1 or 123 or 98 0 9 is 67'.split(/\s/)// ====> ["this", "is", "a", "number", "1", "or", "123", "or", "98", "0", "9", "is", "67"]

8、RegExp对象的2个方法

regexp.exec(string)返回结果跟string方法match的非全局匹配很像

/* * exec()接受一个字符串参数 * 不论正则是否有g全局匹配,都返回一样的结果 */var reg = /(is)+/g;reg.exec('this is a number 1 or 123 or 98 0 9 is 67')// ===> ["is", "is", index: 2, input: "this is a number 1 or 123 or 98 0 9 is 67"]var regg = /(is)+/regg.exec('this is a number 1 or 123 or 98 0 9 is 67')// ====> ["is", "is", index: 2, input: "this is a number 1 or 123 or 98 0 9 is 67"]

regexp.test(string) 与exec相同,但是返回布尔值

var reg = /(is)/;reg.test('this is a number 1 or 123 or 98 0 9 is 67')// ====>truevar reg = /(isddd)/;reg.test('this is a number 1 or 123 or 98 0 9 is 67')// ===>false

 

转载于:https://my.oschina.net/littleFaye/blog/1609330

你可能感兴趣的文章
简述什么是 Cloud Native
查看>>
我在阿里云做前端
查看>>
Spring Cloud Alibaba与Spring Boot、Spring Cloud之间不得不说的版本关系
查看>>
scrapy框架通用爬虫、深度爬虫、分布式爬虫、分布式深度爬虫,源码解析及应用...
查看>>
RNA与DNA曾是一体?生命起源论或被颠覆
查看>>
Android 开发技术面总结
查看>>
阿里云code登录,阿里云code使用教程
查看>>
阿里巴巴复杂搜索系统的可靠性优化之路
查看>>
基于Zookeeper的分布式锁研究
查看>>
红筹企业上科创板新规公布,财务报表披露要“就高不就低”
查看>>
Java类加载的过程
查看>>
Cloud Toolkit 1.1.0 支持 Command 清理
查看>>
远程桌面服务当前正忙,因此无法完成您尝试执行的任务
查看>>
CentOS 7 MySql 解压版安装配置
查看>>
Tomcat部署多域名ssl证书
查看>>
Java 12 / JDK 12 正式发布
查看>>
从码农到工程师:只要做到这6点
查看>>
RabbitMQ快速入门
查看>>
redis server事件模型
查看>>
php 简易分页代码
查看>>