正则表达式(一)

认识正则表达式

1.什么是正则表达式

正则表达式:是一个对象( {} ),描述字符串结构的语法规则,主要用于字符串的匹配。

2.正则表达式的特点

  1. 正则表达式额灵活性
  2. 逻辑性和功能性非常强
  3. 可以迅速地用极简单的方式达到字符串地复杂控制

3.正则表达式的使用

(1)创建正则对象

//字面量方式
var 变量名 = /表达式/;

//RegExp构造函数方式
//或者var 变量名 = RegExp(/表达式/);
var 变量名 = new RegExp(/表达式/);

(2)正则的验证test()

正则对象.test(字符串)
//匹配成功返回true,失败返回false。
var str = "123";

//创建正则对象
var reg1 = /123/;
var reg2 = new RegExp(/abc/);

//对字符串进行验证

console.log(reg1.test(str));    //输出结果为true

console.log(reg2.test(str));    //输出结果为false

4.模式修饰符

/表达式/[switch]

[switch]是模式修饰符,是可选的,对正则表达式进行额外的限制
g: 全局匹配
i:忽略大小写
m:多行匹配

//边界符
^: 开头的文本匹配
$: 结尾的文本匹配

正则表达式的特殊字符

1.边界符

var reg = /abc$/;

console.log(reg.test("abc"));

console.log(reg.test("abcd"));

console.log(reg.test("abcabc"));

2.预定义类

. :匹配任意的单个字符,'\n'除外

\d :匹配0~9之间的任意一个数字([0~9])

\D :匹配0~9之外的其他字符[^0~9],^表示除此之外

\w :匹配任意的字母、数字和下划线 ([a~z A~Z 0~9])

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
例如:

var str = "good idea";

var reg1 = /\s../gi;

console.log(str.match(reg1));    //输出结果为[ ' id' ]  从str中匹配一个字串,匹配规则为reg1

转义特殊字符:在正则表达式中可以使用"\"转义特殊字符。

var s1 = "^abc\\1.23*edf$";

var reg2 = /\.|\$|\*|\^|\\/gi; 

console.log(s1.match(reg2));    //输出结果为[ '^', '\\', '.', '*', '$' ]

3.字符类(取值范围)

[cat]: "[]"表示集合,匹配集合中的任意一个字符c,a,t

[^cat]: 匹配cat之外的其他字符

[A-Z]: 匹配A-Z之间的所有字符

[a-z]: 匹配小写的字母

[^a-z]: 匹配小写字母之外的其他字符

[a-zA-Z0-9]: 匹配大小写字母和0-9之间的所有字符

[\u4e00-\u9fa5]: 匹配所有汉字

在这里插入图片描述

在这里插入图片描述
例:

var reg = /[abc]/;

console.log(reg.test("andy"));    //输出结果为true
console.log(reg.test("boby"));    //输出结果为true
console.log(reg.test("color"));    //输出结果为true
console.log(reg.test("def"));    //输出结果为false

var reg = /^[abc]$/;

console.log(reg.test("a"));    //输出结果为true
console.log(reg.test("b"));    //输出结果为true
console.log(reg.test("c"));    //输出结果为true
console.log(reg.test("aa"));    //输出结果为false
console.log(reg.test("cc"));    //输出结果为false

4.字符组合

  1. 如果允许用户输入英文字母(不区分大小写)、数字、短横线-、下划线_的正则情况。
var rg =  /^[a-zA-Z0-9_-]$/; 
  1. 当中括号“[]”与元字符“^”一起使用时,称为取反符
var reg = /^[^a-z]$/;

console.log(reg.test("a"));    //输出结果为false
console.log(reg.test("z"));    //输出结果为false

console.log(reg.test("1"));    //输出结果为true
console.log(reg.test("A"));    //输出结果为true

5.【案例】用户名验证

<style>
    .success{
        color: green;
    }
    .wrong{
        color: red;
    }
</style>
<body>
    <label>用户名:
        <input type="text" class="uname"> <span></span>
    </label>
</body>
<script>
    $(function(){
        var reg = /^[a-zA-Z0-9_-]{6,16}$/;

        $(".uname").bind("blur",function(){
            let str = $(this).val();
            if(reg.test(str)){
                $("span").removeClass();
                $("span").html("输入格式正确");
                $("span").addClass("success");
            }else{
                $("span").html("输入格式不正确");
                $("span").addClass("wrong");
            }
        })
    })
</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值