JS.正则表达式

一、什么是正则表达式

正则表达式(regular expression),就是一个规则,用来匹配字符串中的字符

二、创建正则表达式

1.new方式

let regExp3 = new RegExp('box', 'i');let regExp4 = new RegExp('\\d'); //反斜杠 \ 在字符串中代表转义,必须用双反斜杠


2.字面量方式

写在两个正斜杠之间let regExp1 = /box/i; //匹配一个0 - 9之间的数字let regExp2 = /\d/; //匹配 box 字符串,不区分大小写

3.修饰符

i :忽略大小写; g:全局匹配 ;

三、使用正则表达式

1.正则表达式对象的方法

test() 测试字符串和正则表达式是否匹配,返回布尔值exec() 测试字符串是否和正则表达式是否匹配,返回结果数组或null

正则表达式对象有两个方法test()和 exec()


2.字符串的方法

search(reg)返回匹配到的字符串下标,没有匹配到则返回-1

match(reg)以数组形式返回匹配到的字符串,没有匹配到则返回null

replace(reg,'content')按照正则表达式进行替换,返回一个字符串

split(reg)以正则表达式为分隔符对字符串进行分割,返回数组


四、元字符

\d 匹配一个数字等效于[0-9]\D 匹配一个非数字等效于[^0-9]\w 匹配数字、字母及下划线[0-9a-zA-Z_]\W匹配非数字、字母及下划线  [^\w] 或 [^0-9a-zA-Z_]\s 匹配任何空白字符:空格、制表符、换行\S 匹配任何非空白字符


五、限定符


字符 描述

^ 行首匹配$ 行尾匹配* 匹配前面的子表达式零次或多次+ 匹配前面的子表达式一次或多次? 匹配前面的子表达式零次或一次. 匹配任意字符,除了换行{n} 花括号:限定数量,匹配确定的n次{n,} 至少匹配n次{n,m} 最少匹配n次且最多匹配 m 次[] 限定范围,如[0-9],[a-d] , [abc]() 分组| 或



六、示例

1.判断一个字符串是不是由数字组成

2.找出连续的多个数字

要求结果:["1", "23", "456", "7890"]

<script>    let str = 'abc1de23fg456hijk7890lmn';</script>

要求结果:["<123>", "<33>"]

<script>    let str = 'abc<123>fdfd<33>fff34fdf<>';</script>


3.正则验证QQ号

5-10个位数字;第一个数字不能是0

4.删除空格

删除首空格:

删除尾空格:

删除所有空格:

5.是否是压缩文件

zip,rar,gz


6.正则验证身份证号码

可以是15位或者是18位,其中最后一位可以是X,其它全是数字,

可以是不代表必须是;最后一位也许是X也许是数字


7.取出字符串最后一组数字

30CAC0040取出0040

3SFASDF92取出92

8.使用场景

我想知道邮箱格式、手机格式、IP格式合不合法,用test如果想抓取网页中所有的手机号,使用exec或match想替换掉网页中敏感词汇,用replace

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容