正则表达式介绍及基本使用

正则表达式

1.正则表达式介绍

正则表达式,又称规则表达式,通常被用来检索、替换那些符合某个模式(规则)的文本。

2.正则表达式使用

2.1创建正则表达式

2.1.1 构建函数创建

var reg = new RegExp(/book/);

2.1.2 直接量

var reg1 = /book/;

2.2正则表达式参数

参数说明
i忽略大小写
g全局匹配
gi忽略大小写全局匹配
m多行匹配

2.3正则表达式组成

2.3.1边界符

边界符说明
^匹配行首字符(以谁开始)
$匹配行尾字符(以谁结束)
    <script>
        //reg1:包含qwe字符的字符串;
        //reg2:qwe字符开头的字符串;
        //reg3:长度为3只包含qwe字符的字符串;

        var reg1 = /qwe/;
        var reg2 = /^qwe/;
        var reg3 = /^qwe$/;

        console.log(reg1.test('qwe'));//true
        console.log(reg1.test('qwerqqqq'));//true
        console.log(reg1.test('qqqqqwer'));//true
        console.log(reg1.test('qwqqwrr'));//false
        console.log('----------------');
        console.log(reg2.test('qwe'));//true
        console.log(reg2.test('qwerqqqq'));//true
        console.log(reg2.test('qqqqqwer'));//false
        console.log(reg2.test('qwqqwrr'));//false
        console.log('----------------');
        console.log(reg3.test('qwe'));//true
        console.log(reg3.test('qweqwe'));//false
        console.log(reg3.test('qwerqqqq'));//false
        console.log(reg3.test('qqqqqwer'));//false
        console.log(reg3.test('qwqqwrr'));//false
    </script>

2.3.2 []方括号
方括号:有一系列字符用中括号括起来,表示匹配其中的任一字符,多选一;

	<script>
        // []:任选其一,只能一个
        var reg1 = /[abc]/;
        var reg2 = /^[abc]$/;
        console.log(reg1.test('a'));//true
        console.log(reg1.test('b'));//true
        console.log(reg1.test('abc'));//true
        console.log(reg1.test('aaa'));//true
        console.log(reg1.test('cddd'));//true
        console.log(reg1.test('fffff'));//false
        console.log('-------------------');
        console.log(reg2.test('a'));//true
        console.log(reg2.test('b'));//true
        console.log(reg2.test('abc'));//false
        console.log(reg2.test('aaa'));//false
        console.log(reg2.test('cddd'));//false
        console.log(reg2.test('fffff'));//false
        console.log('-------------------');

        //包含小写英文字母任意一个
        var reg3 = /[a-z]/;
        //包含大写英文字母任意一个
        var reg4 = /[A-Z]/;
        //包含第一个为小写字母,第二个为大写字母,第三个为数字
        var reg5 = /[a-z][A-Z][0-9]/;
        //包含大写字母小写字母0-9任意一个
        var reg6 = /[a-zA-Z0-9]/;
        //开头和结尾为大写字母小写字母0-9-_任意一个字符 长度为1
        var reg7 = /^[a-zA-Z0-9-_]$/;
        //开头和结尾不是大写字母小写字母0-9任意一个字符 长度为1
        var reg8 = /^[^a-zA-Z0-9]$/; //如果中括号里面有^表示取反的意思
        console.log(reg5.test('a'));//false
        console.log(reg5.test('aB44444'));//true
        console.log('-------------');
        console.log(reg6.test('a'));//true
        console.log(reg6.test('abc'));//true
        console.log(reg6.test('aB9c'));//true
        console.log(reg6.test('_-----'));//false
        console.log('---------------------');
        console.log(reg7.test('a'));//true
        console.log(reg7.test('abc'));//false
        console.log(reg7.test('aB9c'));//false
        console.log(reg7.test('_-----'));//false
        console.log('---------------------');
        console.log(reg8.test('-'));//true
        console.log(reg8.test('@'));//true
        console.log(reg8.test('aB9c'));//false
        console.log(reg8.test('_-----'));//false
    </script>

2.3.3 量词符

量词说明
*出现0次或更多次
+出现1次或更多次
?出现0次或1次
{n}出现n次
{n,}出现n次或更多次
{n,m}出现n到m次
<script>
        var reg = /q/;
        var reg1 = /^q$/;
        var reg2 = /^q*$/;
        var reg3 = /^q+$/;
        var reg4 = /^q?$/;
        // reg:字符串中包含q即可
        console.log(reg.test(''));//false
        console.log(reg.test('q'));//true
        console.log(reg.test('qq'));//true
        console.log(reg.test('qqq'));//true
        console.log(reg.test('qqqw'));//true
        console.log(reg.test('qqqwe'));//true
        console.log('==================');
        // reg1:字符串中只能包含一个q
        console.log(reg1.test(''));//false
        console.log(reg1.test('q'));//true
        console.log(reg1.test('qq'));//false
        console.log(reg1.test('qqq'));//false
        console.log(reg1.test('qqqw'));//false
        console.log(reg1.test('qqqwe'));//false
        console.log('==================');
        // reg2:字符串中只能包含q,并且为0个或者多个
        console.log(reg2.test(''));//true
        console.log(reg2.test('q'));//true
        console.log(reg2.test('qq'));//true
        console.log(reg2.test('qqq'));//true
        console.log(reg2.test('qqqw'));//false
        console.log(reg2.test('qqqwe'));//false
        // reg3:字符串中只能包含q,并且为一个或者多个
        console.log('==================');
        console.log(reg3.test(''));//false
        console.log(reg3.test('q'));//true
        console.log(reg3.test('qq'));//true
        console.log(reg3.test('qqq'));//true
        console.log(reg3.test('qqqw'));//false
        console.log(reg3.test('qqqwe'));//false
        console.log('==================');
        // reg3:字符串中只能包含q,并且为0个或者一个
        console.log(reg4.test(''));//true
        console.log(reg4.test('q'));//true
        console.log(reg4.test('qq'));//false
        console.log(reg4.test('qqq'));//false
        console.log(reg4.test('qqqw'));//false
        console.log(reg4.test('qqqwe'));//false
        console.log('==================');
        // {}第一个参数为最少重复次数,第二个值为最大重复次数,不填为没有限制
        var reg5 = /^h{3}/;
        var reg6 = /^h{3,}/;
        var reg7 = /^h{,6}/;
        var reg8 = /^h{3,6}$/;
        console.log(reg5.test('h')); //false
        console.log(reg5.test('hhh')); //true
        console.log(reg5.test('hhhh')); //true
        console.log(reg5.test('hhhpp')); //true
        console.log(reg5.test('aahhhpp')); //false
        console.log('===========================');
        console.log(reg6.test('h')); //false
        console.log(reg6.test('hhh')); //true
        console.log(reg6.test('hhhh')); //true
        console.log(reg6.test('hhhpp')); //true
        console.log(reg6.test('aahhhpp')); //false
        console.log('===========================');
        console.log(reg7.test('h')); //false
        console.log(reg7.test('hhh')); //false
        console.log(reg7.test('hhhh')); //false
        console.log(reg7.test('hhhpp')); //false
        console.log(reg7.test('aahhhpp')); //false
        console.log('===========================');
        console.log(reg8.test('h')); //false
        console.log(reg8.test('hhh')); //true
        console.log(reg8.test('hhhh')); //true
        console.log(reg8.test('hhhpp')); //false
        console.log(reg8.test('aahhhpp')); //false
    </script>

2.3.4 括号总结

括号类型说明
{}大括号量词符. 里面表示重复次数
[]中括号匹配方括号中的任意字符
()小括号表示优先级

2.3.5 元字符

元字符说明
\d匹配数字,任何ASCII数字,等价于[0-9]匹配一个数字
\D匹配任意非数字的字符,除了ASCII数字之外的任何字符,等价于[^0-9 ]
\w匹配字母或数字或下划线,等价于[ a-zA-Z0-9_ ]
\W匹配任意不是字母,数字,下划线,等价于[ ^a-zA-Z0-9_ ]
\s匹配任意的空白符[ /t/r/n/v/f ]
\S匹配任意不是空白符的字符[^/t/r/n/v/f]
.匹配除换行符和行结束符以外的任意单个字符
<script>
        var str = 'asdfgh  $%&#  4852 \n74d5a5dsa?\r@qq.com 785sa-dsada';
        console.log(str.match(/\d/g));
        console.log(str.match(/\D/g));
        console.log(str.match(/\w/g));
        console.log(str.match(/\W/g));
        console.log(str.match(/\s/g));
        console.log(str.match(/\S/g));
        console.log(str.match(/./g));
        console.log(str.match(/\./g));
        console.log(str.match(/a|b/g));
        
        // 手机号正则
        var reg1 = /^1[3-9][0-9]{9}$/;
        // 邮箱正则
        var reg2 = /^\w+@\w+(-\w+)?(\.\w+)+$/;
        var reg3 = /\w+@\w+-?\w+\.\w+(\.\w+)?/;
        var reg4 = /\w+@[\w|-]+\.\w+(\.\w+)?/;
        console.log(reg2.test('ziyuanyihe@hg-zn.com.cn'));
    </script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值