JavaScript正则表达式简介-----验证ip、邮箱、身份证号及过滤敏感词

正则表达式概述

  • 正则表达式(Regular Expression),是由一些普通字符和特殊字符组成的,用以描述一种特定的字符规则。
  • 正则表达式常用于在一段文本中搜索,匹配或替换特定形式的文本。如:词语出现频率统计、验证字符串是否符合邮箱格式,屏蔽一篇帖子中的限制性词语等。

正则表达式的特点是:
1. 灵活性、逻辑性和功能性非常强;
2. 可以迅速地用极简单的方式达到字符串的复杂控制。
3. 对于刚接触的人来说,比较晦涩难懂。

给定一个正则表达式和另一个字符串,我们可以达到如下的目的:
1. 给定的字符串是否符合正则表达式的过滤逻辑(称作“匹配”):
2. 可以通过正则表达式,从字符串中获取我们想要的特定部分。

var regexp = /^1[3-9]\d{9}$/;
var input = '15810204882';

console.log(regexp.test(input));

直接量字符
定义一个正则表达式语法
/pattern/attributes

说明:

  • 直接量字符串左右不能添加’ 或者“。
  • 两个/不能省略;
  • 参数pattern是一个正则表达式字符串;
  • 参数attributes是一个可选的字符串,可以在g,i和m范围内指定,分别用于指定全局匹配,不区分大小写的匹配和多行匹配。

字符类

  • 所有的单个大小写字母,数字都是一个正则表达式,用以匹配单个字符,这个字符与它本身相同
var regexp = /ipod/;
var data = 'Apple Ipod is cool';
console.log(regexp.test(data));
  • 正则表达式中有些字符有特殊的语法含义,是不能直接使用的,必须使用\进行转移后才能使用
    . \ / * ? + [ ( ) ] { } ^ $ |

重复

  • 正则表达式中可以使用如下特殊字符定义字符的出现频次——量词元字符

在这里插入图片描述

选择,分组和引用

  • 正则表达式使用如下语法匹配一个范围内的字符

在这里插入图片描述

元字符

  • 元字符是拥有特殊含义的字符,正则表达式中使用元字符引用来进行简化

在这里插入图片描述

指定匹配位置

  • 可以使用如下字符进行指定位置的匹配

在这里插入图片描述

修饰符

  • 正则表达式中可以使用如下三个属性修饰符

在这里插入图片描述

RegExp对象

创建正则表达式对象有两种方法:
var patt1 = /pattern/attributes;
调用RegExp构造方法:
var patt2 = new RegExp(pattern,attributes);

var regexp1 = /\d{2,3}/ig;
var regexp2 = new RegExp("\d{2,3}","ig");

RegExp的属性
在这里插入图片描述
RegExp的方法
在这里插入图片描述

正则表达式常见例子

判断邮箱的格式
第一种:

<!-- 邮箱正则表达式 -->
        请输入您的邮箱地址:<input type="text" name="text" id="t">
        <button onclick="queding()">确定</button>
        <script>
            
            function queding(){
                var ema = document.getElementById("t").value;
                var email = /^[A-z0-9]\w{5,20}]+@[0-9A-z]\.[A-z]{2,4})$/
                if(email.test(ema)){
                    return true
                }else{
                    return false
                }
            }

第二种:

<!-- 邮箱正则表达式 -->
        请输入您的邮箱地址:<input type="text" name="text" id="t">
        <button onclick="q()">确定</button>
        <script>
            
            function q(){
                var ema = document.getElementById("t").value;
                console.log(ema)
                var em = /\w+[@]\d+(.[a-z]+)/;
                console.log(em.test(ema))
            }
        </script>

过滤敏感词

请输入一句话:<input type="text" name="" id="str">
        <button onclick="ok()">ok</button>
        <script>
            function ok(){
                var new_str = document.getElementById("str").value
                var reg = /lili|lala|huhu|huahua/g ;//改成其他敏感词即可
                console.log(new_str)
                new_str1 = new_str.replace(reg,'*')
                console.log(new_str1)
            }
            document.write("<br>")

验证身份证号

        请输入你的身份证号: <input type="text" id='num'>
        <button onclick="okk()">okk</button>
        <script>
            function okk(){
            var new_num = document.getElementById("num").value;
            var reg = /^[1-8][0-9]{5}([18|19|20]+[0-9]{2})(0?[1-9]|1[0-2])\d{2}([0-9]{3})([0-9]|X)$/
            console.log(new_num)
            console.log(reg.test(new_num))
        }

验证ip地址

        请输入你的ip地址:<input type="text" name="" id="add">
        <button onclick="okkk()">okkk</button>
        <script>
            function okkk(){
                var ipp = document.getElementById("add").value
                var reg = /^((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)$/
                console.log(ipp)
                console.log(reg.test(ipp))
            }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值