正则表达式(Regular Expression)

一、正则表达式是什么?

匹配想要的东西
为什么使用正则表达式:可以
1.测试字符串内的模式
2.替换文本
3.基于模式匹配从字符串中提取字符串

二、.正则表达式的创建

语法:
var reg=/内容/修饰词
var reg=new RegExp(pattern,modifiers)
pattern:模式
modifiers:修饰词
方法:
test()
验证字符串是否满足正则表达式
exec()

三、字符串的方法

search(/haha/)
根据正则表达式进行查找
replace(/haha/,“hehe”)
根据正则表达式进行查找替换

四、正则语法规则

修饰词
i ignore 匹配时忽略大小写
g global 全局验证
m 验证多行

匹配模式
小括号()
(abc) 查找abc这个单词
(abc|bcd|def) 查找这三个单词其中的一个
中括号[]
[ 12345] 包括12345其中的某一个
[abc] 包括abc其中的某一个
[0-9] 包括所有数字
[a-z] 包括所有小写字母
[A-Z] 包括所有大写字母
[A-z] 包括所有字母,Z-a之间包含一些特殊字符

元字符
.
表示所有的字符,想要验证”."用反斜杠\进行转义
\d
任何数字
\D
任何非数字
\s
空白字符
\S
非空白字符
\w
任何字母,数字,下划线
\W
任何非字母,数字,下划线

量词
^n
匹配开头为n的字符串
n$
匹配结尾为n的字符串
n+
匹配一个或多个
n(x)
匹配任何包含x个n的字符串
n(x,y)
匹配任何包含x到n的字符串
n(x,)
匹配至少有x个指定字符
n?
表示有0个或一个指定字符
n*
表示有0个或多个指定字符

 

例:


1.验证手机号
以1开头,判断第二位可以是3,5,6,7,8,9后面是9位数字

btn1.onclick=function () {
            var reg1=/^1[356789]\d{9}$/
            var str1=ipt1.value
            if(reg1.test(str1)){
                alert('成功')
            }else{
                alert('不成')
            }
        }

2.正则验证密码
第一个字符是大写字母,最短8位,要求包括字母,数字

btn2.onclick=function () {
            var reg2=/^[A-Z][a-zA-Z\d]{7,}$/
            var str2=ipt2.value
            if(reg2.test(str2)){
                alert('成功')
            }else{
                alert('不成')
            }
        }

3.正则验证邮箱
邮箱的名字是\w 中间@符号 @符号后面是数字或者字母 后面.com

btn3.onclick=function () {
            var reg3=/^\w+@[0-9a-zA-Z]+(\.com)$/
            var str3=ipt3.value
            if(reg3.test(str3)){
                alert('成功')
            }else{
                alert('不成')
            }
        }

4.正则验证身份证号

btn4.onclick=function () {
            var reg4=/^\d{6}(19|20)\d{2}(0|1)\d(0|1|2|3)\d{4}(\d|X)$/
            var str4=ipt4.value
            if(reg4.test(str4)){
                alert('成功')
            }else{
                alert('不成')
            }
        }

5.能够匹配“go go”和“abc abc”但不能匹配“go abc”的正则

btn5.onclick=function () {
            var reg5=/(^\w{2}\s\w{2}$)|(^\w{3}\s\w{3}$)/
            var str5=ipt5.value
            if(reg5.test(str5)){
                alert('成功')
            }else{
                alert('不成')
            }
        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值