正则表达式

目录

1.新建

2.方法

3.匹配规则

4.匹配方法


1.新建

(1)RegExp构造函数:var   re=new RegExp("a")

(2)使用字面量(常用):var   re=/a

2.方法

(1)test():返回一个布尔值,方法用于匹配字符串,匹配成功返回true,失败返回false

(2)exec():

   <1>exec():返回匹配结果,发现匹配,就返回一个以每个匹配成功的字符串组成的类数组集合。否则返回null

   <2>方法属性:

      1)index   表示匹配项在字符串中的位置

      2)input   表示原字符串

(3)正则.方法(字符串)

3.匹配规则

(1)字面量字符

   <1>在正则表达式中,某个字符只表示它字面的含义,比如/a/匹配a

   <2>数字、大小写、符号

(2)元字符

   <1>正则中需要用斜杠转义的字符:^、.、[、]、$、(、)、|、*、+、?、{、}、\\

      1)点字符:.(匹配除回车\r、换行\n、行分隔符\u2028、段分隔符\u2029以外的所有字符)

      2)位置字符:

         1>^   表示字符串的开始位置

         2>$   表示字符串的结束位置

      3)竖线符号:|(在正则中表示“或关系”即 a | b 表示匹配 a 或 b)

   <2>如果使用RegExp方法生成正则对象,转义需要使用两个斜杠,因为字符串内部会先转义一次

(3)重复类:模式的精确匹配次数,用大括号{}表示,{n}表示恰好重复n次,
                  {n,}表示至少重复n次,{n,m}表示重复不少于n次,不多于m次

(4)量词符

   <1>?   问好表示某个模式出现0次或1次,等同于{0,1}     最多1次

   <2>*    星号表示某个模式出现0次或多次,等同于{0,}      无影响

   <3>+   加号表示某个模式出现1次或多次,等同于{1,}      至少1次

(5)字符类:表示有一系列字符可供选择,只要匹配其中一个就可以,所有可供选择的字符都放在                      方括号内,如:[abc]表示a、b、c之中任选一个匹配

   <1>脱字符  ^:如果方括号内第一个字符是[^],则表示除了字符类中的字符,其它字符都可以匹                             配,如[^abc]表示除了a、b、c之外都可以匹配

   <2>连字符   -

      1)对于连续序列的字符,连字符用来提供简写形式,表示字符的连续范围,如:[abc]可写成               [a- c]、[0123456789]可写成[0-9]、[A-Z]表示26个大写字母

      2)中文[\u4e00-\u9fa5]

(6)修饰符(模式修正符):修饰符表示模式的附加规则,放在正则模式的最尾部,修饰符可以单                       个使用,也可以多个一起使用

   <1>g   默认情况下,第一次匹配成功后,正则对象就停止向下匹配,g修饰符表示全局匹配

   <2>i   默认情况下,正则对象区分字母的大小写,加上i修饰符以后表示忽略大小写

   <3>m   表示多行模式,会修改^和$的行为,默认情况下^和$匹配字符串的开始处和结尾处,加            上m修饰符后,^和$会识别换行符\n

(7)预定义模式:指某些常见模式的简写方式

   <1>\d   匹配0-9之间的任一数字,相当于[0-9]

   <2>\D   匹配所有0-9以外的字符,相当于[^0-9]

   <3>\w   匹配任意的字母、数字和下划线,相当于[A-Za-z0-9]

   <4>\W   除所有字母,数字和下划线以外的字符,相当于[^A-Za-z0-9]

   <5>\s   匹配空格,包括制表符、空格符、断行符等

   <6>\S   匹配非空格的字符

   <7>\b   匹配单词的后边界

   <8>\B   匹配非单词边界

(8)特殊字符

   <1>[\b]   匹配退格键

   <2>\n   匹配换行键

   <3>\r   匹配回车键

   <4>\f   匹配换页符

   <5>\t   查找制表符tab

(9)组匹配

   <1>正则表达式的括号表示分组匹配,括号中的模式可以用来匹配分组的内容

   <2>例:var str='abcde'
                var reg=[(abc)(def)]
                str.match(reg);   ['a','b','c']

代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>RegExp正则表达式</title>
</head>
<body>
    
</body>
<script>
    // 创建正则表达式
    // 1. 字面量字符
    // 第一种方法
    // var  reg = new  RegExp("a");
    // console.log(reg.test("a"));
    // 第二种方法
    // var  reg = /a/;
    // console.log(reg.test("aaa"));
    
    // 2. .字符   代表除了某些特殊符号的任意字符        例如:var reg = /a.c/;
    //    .字符   如果表示自己的话.前面要加反斜杠/      例如:var reg = /a\.c/;
    // var reg = /a.c/;
    // console.log(reg.test("a.c"));

    // 3.  ^   &   |
    // 以A开头或以a结尾都为true,否则为false
    // var  reg = /^A|a$/;
    // console.log(reg.test("Abc"));

    // 4. {}区间范围
    // /abc{2}/表示只要c出现两次就为true     /abc{3,5}/表示c的次数在此区间内都为true
    // var  reg = /abc{3,5}$/;
    // console.log(reg.test("abcccccc"));

    // 5. 量词符   *  +  ?
    // var  reg = /ba?$/;
    // console.log(reg.test("bbaab"));

    // 6. 字符类 []
    // 只要其中有一个就为true,否则为false      例如: var reg = /[abcdefg]/;
    // 除了abcdefg为false,其它都为true        例如: var reg = /[^abcdefg]/;
    // 连字符-,在此区间内都为true              例如: var reg = /[^a-g]/;
    // var reg = /[^A-Z]/;
    // console.log(reg.test("uuu"));

    // 7. 修饰符
    // g为global(所以满足需求的选项)       i为忽略大小写
    var  reg = /[a-z]/gi;
    // 如果符合/[a-z]/g,那就把所以满足需求的选项去掉
    var  str = "abcdeZZZ123123".replace(reg,"");
    console.log(str);

</script>
</html>

运行结果:

4.匹配方法

(1)match():接受一个参数,正则去匹配字符串,如果匹配成功,就返回匹配成功的数组,如果匹                  配不成功,就返回null

(2)search():参数与match相同,返回字符串中第一个匹配项的索引,没有匹配项返回-1

(3)replace():用于替换,接受两个参数,第一个是匹配项,第二个可以是字符串或是一个函数

(4)字符串.方法(正则)

具体案例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>正则的使用</title>
</head>
<body>
    
</body>
<script>
    // 1. 手机号
    var  reg1 = /^1[^0124]\d{9}$/;

    // 2. qq号
    var  reg2 = /^d{6,10}$/;

    // 3. 邮箱
    // xxxxx@xxxx.net
    var  reg3 = /\w+\@\w+\.[(com)(cn)(net)$]/;
</script>
</html>

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值