Web前端——正则表达式和 jQuery


一、定义正则表达式

正则表达式是一个描述字符模式的对象,它由一些特殊的符号组成。在 JavaScript 中,正则表达式有两种定义方式。

1.普通方式

语法:var reg = /模式/修饰符

2.构造函数方式

语法:var reg = new RegExp(“模式”,”修饰符”)

模式代表了某种规则,可以使用一些特殊符号来构成
修饰符用来扩展表达式的含义,主要有三个,并且可以任意组合
G: 表示全局匹配
I: 表示不区分大小写匹配
M: 表示可以进行多行匹配

创建完正则表达式后,可以使用test()方法来检测一个字符串是否匹配该模式
语法:reg.test(字符串)
测试代码1:

<script type="text/javascript">
	var reg = /wzu/i
	var s = "wdfdfaawertrfwZudfadfadf"
	alert(reg.test(s))
</script>

上述代码在 JavaScript 中定义了一个模式 reg,该模式用来匹配目标字符串中是否包含子串“wzu”,修饰符 i 表示匹配过程中忽略大小写。
测试代码2:

var reg1 = / ^wzu/gm
var s1 = " wzudfda\nwzu";
alert(s1.replace(reg1, "www"))

上述代码定义了一个模式 reg1,该模式用于匹配以“wzu”开头的字符串。其中字符串s1 存在符号“\n”是多行字符串,由于加了全局匹配和多行匹配修饰符,该模式会将每一行作为一个单独的字符串处理,因此上述代码返回结果“wwwdfda\nwww”,如果不加修饰符 g,则首次匹配成功后即返回。如果不加修饰符 m,则不支持多行匹配。

二、表达式的模式

正则表达式的模式一般分为简单模式复合模式两种。
简单模式是指通过普通字符的组合来表达的模式,简单模式只能匹配普通字符串,不能满足复杂需求
复合模式是指通过利用通配符来表达语义的模式,常见的正则表达式符号有选择符和量词符

1.选择符

在这里插入图片描述

2.量词符

在这里插入图片描述

3.例子

身份证号码

我国身份证号码的规则为:
15 位或者 18 位
18 位最后一位可能为 X 或者数字
可定义正则表达式为:var reg = /^\d{15}(\d{2}[0-9xX])?$/
其中,d{15}表示前 15 位是数字
表示(\d{2}[0-9xX])这一部分可出现 0 次或 1 次,该部分前 2 位是数字,最后 1 位是字符 x 或 X。

电子邮箱

验证电子邮箱是否符合规则的正则表示可定义如下
var reg = /^\w+@\w+(\.[A-z]{2,3}){1,2} $/
其中,^\w+表示邮箱必须以数字、字母或者下划线开头并且可以出现多次,
@\w+表示必须出现@符号,并且之后必须跟 1 次或多次数字、字母或者下划线。
\.[A-z]{2,3}表示“.”号后面跟 2~3 个字母,其中“.”是正则表达式保留字,因此需要使用“\”进行转义

测试代码:

<script>
    $(function () {
        $("input[name='identify']").blur(function () {
            var idf = $(this).val();
            var reg = /^\d{15}(\d{2}[0-9xX])?$/;
            if(reg.test(idf) === false){
                $("#idfInfo").html("身份证号码不正确,请重新输入")
            }else{
                $("#idfInfo").html("")
            }
        })
    })
</script>
<body>
    <span>请输入身份证号</span>
    <input type="text"  name="identify">
    <span id="idfInfo"></span>
</body>

上述代码表示,当输入框失去焦点后,将触发事件处理函数。该函数首先获取用户输入的内容,然后测试该内容是否匹配正则表达式定义的模式,如果不匹配则在 id 为“idfInfo”的标签(默认为空)中给出提示信息


总结

仅根据书本知识初步记录一下

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值