第一章 web前端开发工程师--JavaScript 初级程序设计 1-13JavaScript正则表达式

    xiaoxiao2025-03-20  16

    JavaScript正则表达式

     

    本节课所讲内容:

    JavaScript RegExp介绍javaScript创建正则表达式常用的正则

    一. JavaScript RegExp介绍

    正则表达式描述了字符的模式对象。

    当您检索某个文本时,可以使用一种模式来描述要检索的内容。RegExp 就是这种模式。

    简单的模式可以是一个单独的字符。

    更复杂的模式包括了更多的字符,并可用于解析、格式检查、替换等等。

    可以规定字符串中的检索位置,以及要检索的字符类型,等等。

    二. javaScript创建正则表达式

    创建正则表达式

    创建正则表达式和创建字符串类似,创建正则表达式提供了两种方法,一种是采用new运算符,另一个是采用字面量方式。

     

    1.两种创建方式

    var box = new RegExp('box'); //第一个参数字符串

    var box = new RegExp('box', 'ig'); //第二个参数可选模式修饰符

     

    模式修饰符的可选参数

    参  数

    含  义

    i

    忽略大小写

    g

    全局匹配

    m

    多行匹配

     

    var box = /box/; //直接用两个反斜杠

    var box = /box/ig; //在第二个斜杠后面加上模式修饰符

    2.测试正则表达式

    RegExp对象包含两个方法:test()和exec(),功能基本相似,用于测试字符串匹配。test()方法在字符串中查找是否存在指定的正则表达式并返回布尔值,如果存在则返回true,不存在则返回false。exec()方法也用于在字符串中查找指定正则表达式,如果exec()方法执行成功,则返回包含该查找字符串的相关信息数组。如果执行失败,则返回null。

     

    RegExp对象的方法

    方  法

    功  能

    test

    在字符串中测试模式匹配,返回true或false

    exec

    在字符串中执行匹配搜索,返回结果数组

     

    /*使用new运算符的test方法示例*/

    var pattern = new RegExp('box', 'i'); //创建正则模式,不区分大小写

    var str = 'This is a Box!'; //创建要比对的字符串

    alert(pattern.test(str)); //通过test()方法验证是否匹配

    3.使用字符串的正则表达式方法

    除了test()和exec()方法,String对象也提供了4个使用正则表达式的方法。

     

    String对象中的正则表达式方法

    方  法

    含  义

    match(pattern)

    返回pattern中的子串或null

    replace(pattern, replacement)

    用replacement替换pattern

    search(pattern)

    返回字符串中pattern开始位置

    split(pattern)

    返回字符串按指定pattern拆分的数组

    /*使用match方法获取获取匹配数组*/

    var pattern = /box/ig; //全局搜索

    var str = 'This is a Box!,That is a Box too';

    alert(str.match(pattern)); //匹配到两个Box,Box alert(str.match(pattern).length); //获取数组的长度

     

    /*使用search来查找匹配数据*/

    var pattern = /box/ig;

    var str = 'This is a Box!,That is a Box too';

    alert(str.search(pattern)); //查找到返回位置,否则返回-1

     

    PS:因为search方法查找到即返回,也就是说无需g全局

     

    /*使用replace替换匹配到的数据*/

    var pattern = /box/ig;

    var str = 'This is a Box!,That is a Box too';

    alert(str.replace(pattern, 'Tom')); //将Box替换成了Tom

     

    /*使用split拆分成字符串数组*/

    var pattern = / /ig;

    var str = 'This is a Box!,That is a Box too';

    alert(str.split(pattern)); //将空格拆开分组成数组

     

    三.常用正则

    常用的正则 检查邮政编码

    var pattern = /[1-9][0-9]{5}/; //共6位数字,第一位不能为0

    var str = '224000';

    alert(pattern.test(str));

     

    检查文件压缩包

    var pattern = /[\w]+\.zip|rar|gz/; //\w表示所有数字和字母加下划线

    var str = '123.zip'; //\.表示匹配.,后面是一个选择

    alert(pattern.test(str));

     

    字符类:单个字符和数字

    元字符/元符号

    匹配情况

    .

    匹配除换行符外的任意字符

    [a-z0-9]

    匹配括号中的字符集中的任意字符

    [^a-z0-9]

    匹配任意不在括号中的字符集中的字符

    \d

    匹配数字

    \D

    匹配非数字,同[^0-9]相同

    \w

    匹配字母和数字及_

    \W

    匹配非字母和数字及_

     

    字符类:空白字符

    元字符/元符号

    匹配情况

    \0

    匹配null字符

    \b

    匹配空格字符

    \f

    匹配进纸字符

    \n

    匹配换行符

    \r

    匹配回车字符

    \t

    匹配制表符

    \s

    匹配空白字符、空格、制表符和换行符

    \S

    匹配非空白字符

     

    字符类:锚字符

    元字符/元符号

    匹配情况

    ^

    行首匹配

    $

    行尾匹配

    \A

    只有匹配字符串开始处

    \b

    匹配单词边界,词在[]内时无效

    \B

    匹配非单词边界

    \G

    匹配当前搜索的开始位置

    \Z

    匹配字符串结束处或行尾

    \z

    只匹配字符串结束处

     

    字符类:重复字符

    元字符/元符号

    匹配情况

    x?

    匹配0个或1个x

    x*

    匹配0个或任意多个x

    x+

    匹配至少一个x

    (xyz)+

    匹配至少一个(xyz)

    x{m,n}

    匹配最少m个、最多n个x

     

    字符类:替代字符

    元字符/元符号

    匹配情况

    this|where|logo

    匹配this或where或logo中任意一个

     

     

     

     

    最新回复(0)