正则表达式

        最近复习正则表达式知识,随手整理份笔记,便于后期复习巩固~

1、RegExp 对象

        创建RegExp对象的两种方式:

                (一)构造函数方式:

                        var reg = new RegExp("表达式", "附加参数");

                  (二)普通方式

                        var reg = /表达式/附加参数;附加参数是可选的,用来拓展正则表达式的含义,主要有三个参数:

                                ①、g:全局匹配;

                                ②、i:匹配时忽略大小写;

                                ③、m:多行匹配;

        RegExp对象API:

                (一)、test(String); 

                        该方法检查一个字符串中,是否存在创建RegExp对象实例时指定的正则表达式,存在则返回true,否则返回false;

                        语法为:regExpObject.test(String);

                        示例:                     

# 构造函数方式:
<script type="text/javaScript">
    var str = "hello world!"
    var reg = new RegExp("world", "i"); // 忽略大小写匹配“world”
    var result = reg.test(str); // 检查str中是否存在“world”
    document.write(result); // true 
</script>
#普通方式:
<script type="text/javascript">
     var str="HELLO WORLD";
     var regExp=/world/i; // 忽略大小些匹配world
     var result=regExp.test(str);
     document.write(result); //true
 </script>

 

            (二)、exec(String);

                使用RegExp对象对象示例创建时指定的正则表达式,搜索字符串中满足正则表达式的字符位置,返回所有满足正则表达式的字符位置组成的数组;

                语法:regExpObject.exec(str);

                示例:

<script type="text/javaScript">
    var Str = "我爱我的家乡,我的家乡很漂亮";
    var regExp = /我/;
    var result = regExp.exec(Str); // 搜索“我爱我的家乡,我的家乡很漂亮”中,“我”的所有位置
    document.write(result);
</script>

                

2、正则表达式的元字符

        限定符

                (一)、{n}:规定前面的字符或组合项要连续出现n次;

                          示例:

<script type="text/javaScript">
    var str = "thehel";
    var regExp = /(he){3}/
    var result = regExp.test(str); // 检查“thehel”中是否包含了3个“he”
    document.write(result); // false
</script>

         

                (二)、{n,m}: 规定前面的元素或组合项至少连续出现n次,至多连续出现m次 。注意n<m,并且逗号和数字之间不能有空格;

                        示例:

<script type="text/javaScript">
    var str = "thehel";
    var regExp = /(he){1,3}/
    var result = regExp.test(str); // 检查“thehel”中是否包含了1到3个“he”
    document.write(result); // true
</script>

  

                (三)、+:规定前面的元素或组合必须出现一次或连续出现多次,等效于{1};

                          示例:

<script type="text/javaScript">
    var str = "thehel";
    var regExp = /(he)+/  // 等效于 /(he){1}/
    var result = regExp.test(str); // “thehel”中必须包含1“he”,或连续多个
    document.write(result); // true
</script>

   

                (四)、*:规定前面的元素或组合项可以出现零次或连续出现多次,等效于{0};

                        示例:

<script type="text/javaScript">
    var str = "thehel";
    var regExp = /(he)*/  // 等效于 /(he){0}/
    var result = regExp.test(str); // “thehel”中不包含“he”,或连续出现多个“he”
    document.write(result); // true
</script>

         

                (五)、?:规定前面的元素或组合项出现零次或一次;等效于{0,1};

                        示例:

<script type="text/javaScript">
    var str = "thehel";
    var regExp = /(thel)?/  // 等效于 /(thel){0}/
    var result = regExp.test(str); // “thehel”中不包含“thel”,或一个“thel”
    document.write(result); // true
</script>

        选择匹配符

                选择匹配符有且仅有一个,即 "|" 字符,用于先择匹配两个选项中的任意一个;

                示例:

<script type="text/javaScript">
    var str = "thehel";
    var regExp = /the|tel/  // 匹配“the” 或 “tel”
    // var regExp = /(the|tel)1/ // 匹配“the1” 或 “tel1” 相同部分,可以放在括号后面
    var result = regExp.test(str); // “thehel”中是否包含“the”或“tel”
    document.write(result);
</script>

        字符匹配符

                (一)、[...]:匹配中括号中包含的字符集中的任意一个字符

                        示例:

<script type="text/javaScript">
    var str = "thehel";
    var regExp = /[abc]/  // 匹配“a” 或 “b” 或 “c”
    var result = regExp.test(str); // “thehel”中是否包含“a” 或 “b” 或 “c”
    document.write(result); // false
</script>

                (二)、[^...]:匹配中括号中未包含的任何字符;

                        示例:

<script type="text/javaScript">
    var str = "thehel";
    var regExp = /^[abc]/  // 匹配除“a” 或 “b” 或 “c”,之外的任意字符
    var result = regExp.test(str); // “thehel”中是否包含“a” 或 “b” 或 “c”之外的任意字符
    document.write(result); // true
</script>

                (三)、[a-z], [0-9]:匹配a-z,0-9的任意字符;

                (四)、[^a-z], [^0-9]:匹配不在a-z,0-9范围内的任意字符;

                        示例:规则同理~

<script type="text/javaScript">
    var str = "12dda";
    var regExp = /[0-9]/  // 匹配0到9之间的任意字符
    // var regExp1 = /^[0-9]/  // 匹配0到9之外的任意字符
    var result = regExp.test(str); // 检查“12dda”中是否包含0到9之间的任意数字字符
    document.write(result); // true
</script>

                 (五)、\d:匹配任意一个数字字符,等效于[0-9];

                (六)、\D:匹配任意一个非数字字符;

                (七)、\s:匹配任意空白字符,比如空格、制表符等;

                (八)、\S:匹配任意非空白字符;

                (九)、\w:匹配任何英文字母、数字或下划线。等效于[A-Za-z0-9_];

                (十)、\W:匹配任务非英文字母或数字的字符,且不包含下划线。等效于[^A-Za-z0-9_];

                (十一)、.:匹配除换行符\n之外的任何单字符;

                

3、常用的正则表达式

  • 邮箱:^\w+@\w+.[a-zA-Z]{2,3}(.[a-zA-Z]{2,3})?$;
  • 邮政编码:^\d{6}$
  • 匹配字符串中的中文:[\u4e00-\u9fa5]
  • 身份证:^[1-8][1-7]\d{4}(?:19|20)\d{2}(?:0[1-9]|1[0-2])(?:0[1-9]|[12]\d|3[01])\d{3}[\dX]$
  • 手机号:^1[34578]\d{9}$

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值