正则表达式(上)

正则表达式

什么是正则表达式呢?正则表达式是构成搜索模式的字符序列。可以用于匹配特殊字符或有特殊搭配的字符
像是打游戏输入文字时,有些文字不能用,就可以用正则表达式做的限制,可以起到文本校验的功能。

正则表达式的创建方法

第一种是 var reg = /abc/ ,直接在斜杆中间写规则。
第二种是创建RegExp实例,var reg = new RegExp(“abc”)。以上两种方法的reg是相等的。
那么正则表达式如何使用呢?首先介绍一个正则表达式的test方法。(注意:是正则表达式调用的方法)

var reg = /abc/
var str = "abcde"
console.log(reg.test(str))

控制台返回了一个true。很明显reg.test(str)是在判断str里面是否含有符合reg匹配规则的字符。如果有就返回true,没有就返回false。

正则表达式修饰符

修饰符可以让正则表达式具有更强的功能。修饰符有三种,i、g、m。
加上i之后匹配字符会忽视大小写,而g则是会全局查找,m是多行查找。具体结合后面的方法来简述。首先来看i字符。

var reg = /abc/ 
var reg1 = /abc/i
var str = "ABC"
console.log(reg.test(str))  //false
console.log(reg1.test(str))  //true

i修饰符在匹配时忽视大小写
再介绍一个字符串的match方法,配合g修饰符使用(注意:是字符串调用的方法)
match方法会返回一个类数组

        var reg = /ab/
        var reg1 = /ab/g
        var str = "abcdabcd"
        console.log(str.match(reg))  //["ab", index: 0, input: "abcdabcd", groups: undefined],里面只有一个ab
        console.log(str.match(reg1)) //返回能匹配到的所有字符。["ab", "ab"]

m修饰符不太好表达,大家下来可以自己查阅试一下。

正则表达式模式

括号[ ]
之前的/abc/只能硬性的匹配到abc字符串,而括号可以让匹配机制更加灵活
[abc],可以查找方括号之间的任何字符。

        var reg = /abc/
        var reg1 =/[ab][bc][cd]/
        var str = "abc"
        var str1 = "bcd"
        var str2 = "bbd"
        console.log(reg.test(str)) //true
        console.log(reg.test(str1)) //false
        console.log(reg.test(str2)) //false
        console.log(reg1.test(str)) //true
        console.log(reg1.test(str1)) //true
        console.log(reg1.test(str2)) //true

(abc|bcd)表示查找abc或者bcd

        var reg = /(abc|bcd)/
        var str = "abc"
        var str1 = "bcd"
        console.log(reg.test(str)) //true
        console.log(reg.test(str1)) //true

下面引入w3c网站的一张截图(w3c正则表达式网址
在这里插入图片描述

        var reg = /\d+\sw\b/
        var reg1 = /\d{3}\sw\b/    //{3}表示按照前面要求匹配3个
        var str = "a2222 w"
        console.log(str.match(reg)) //["2222 w"]
        console.log(str.match(reg1)) //["222 w"]

^在括号外面表示以什么开头,/ ^a/表示匹配以a开头的。&表示以什么结尾
^在括号里面表示非,也就是除了什么之外。/ [ ^0]/匹配除了0以外的任何字符。
\d = [0-9] , \D = [ ^\d]
如何匹配所有字符都能成功呢?
集合和它的补集加起来就是所有。所以/[\d\D]/就可以匹配任意字符

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值