iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >深入了解JavaScript中正则表达式的使用
  • 179
分享到

深入了解JavaScript中正则表达式的使用

2024-04-02 19:04:59 179人浏览 泡泡鱼
摘要

目录一、什么是正则表达式1、正则表达式特点2、正则表达式的使用二、正则表达式中的特殊字符1、正则表达式的组成2、边界符3、字符类4、量词符5、括号总结6、预定义类三、String类中

一、什么是正则表达式

是用于匹配字符串中字符组合的模式。在 javascript中,正则表达式也是对象。

正则表通常被用来检索、替换那些符合某个模式(规则)的文本,例如验证表单:用户名表单只能输入英文字母、数字或者下划线, 昵称输入框中可以输入中文(匹配)。此外,正则表达式还常用于过滤掉页面内容中的一些敏感词(替换),或从字符串中获取我们想要的特定部分(提取)等 。

1、正则表达式特点

正则表达式的灵活性。

逻辑性和功能性非常强。

可以迅速地用极简单的方式达到字符串的复杂控制。

2、正则表达式的使用

1、创建正则表达式

通常有两种方式可以创建。

1)通过调用 RegExp 对象的构造函数创建


var 变量名 = new RegExp(/表达式/); 

2)通过字面量创建


 var 变量名 = /表达式/; 

// 注释中间放表达式就是正则字面量

2、测试正则表达式

test() 正则对象方法,用于检测字符串是否符合该规则,该对象会返回 true 或 false,其参数是测试字符串。


regexObj.test(str) 

其中:

regexObj —写的正则表达式

str —要测试的文本

意即检测str文本是否符合写的正则表达式规范。

例如:

给定一个正则表达式var rg = /123/,判断我们输入的字符串是否符合规则。


var str = '123'
var reg1 = new RegExp(/123/);
var reg2 = /abc/;
console.log(reg1.test(str)) ; 
console.log(reg2.test(str)) ;

打印结果为;

二、正则表达式中的特殊字符

1、正则表达式的组成

一个正则表达式可以由简单的字符构成,比如 /abc/,也可以是简单和特殊字符的组合,比如 /ab*c/ 。其中特殊字符也被称为元字符,在正则表达式中是具有特殊意义的专用符号,如 ^ 、$ 、+ 等。

2、边界符

正则表达式中的边界符(位置符)用来提示字符所处的位置,主要有两个字符。

边界符 说明
^ 表示匹配行首的文本
$ 表示匹配行尾的文本

如果 ^ 和 $ 在一起,表示必须是精确匹配。

3、字符类

字符类表示有一系列字符可供选择,只要匹配其中一个就可以了。所有可供选择的字符都放在方括号内。

1、[]方括号类


/[abc]/.test('andy')     // true 

后面的字符串只要包含abc中任意一个字符,都返回true。

2、[-]方括号内部 范围符-


/^[a-z]$/.test(c')     // true

方括号内部加上 - 表示范围,这里表示 a 到 z 26个英文字母都可以。

3. [^] 方括号内部 取反符^


  /[^abc]/.test('andy')     // false

方括号内部加上 ^ 表示取反,只要包含方括号内的字符,都返回 false 。

注意和边界符 ^ 区别,边界符写到方括号外面。

4. 字符组合


/[a-z1-9]/.test('andy')     // true

方括号内部可以使用字符组合,这里表示包含 a 到 z 的26个英文字母和 1 到 9 的数字都可以。

4、 量词符

量词符用来设定某个模式出现的次数。

量词 说明
* 重复零次或者更多次
+ 重复一次或者更多次
重复0次或一次
{n} 重复n次
{n,} 重复n次或更多次
{n,m} 重复n到m次

var reg = /^a*$/;        // * 相当于>=0,可以出现0次或很多次
var reg = /^a+$/;        // + 相当于>=1,可以出现1次或很多次
var reg = /^a?$/;        // ? 相当于1||0,可以出现0次或1次
var reg = /^a{3}$/;      // {3}就是重复a字符3次
var reg = /^a{3,}$/;    // {3,}就是重复a字符 大于等于3次
var reg = /^a{3,16}$/;  // {3,16}就是重复a字符 大于等于3次 小于等于16次

比如现在做一个用户名验证的案例,如果用户名输入合法,则提示信息为:用户名合法,颜色为绿色;如果用户名输入不合法,则提示信息为:用户名不合法,并且颜色为绿色。

代码如下:


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta Http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="Jquery.js"></script>
    <style>
        .success{
            color:green;
        }
        .wrong{
            color:red;
        }
    </style>
</head>
<body>
    <label for="">用户名:
        <input type="text" class="uname"><span></span>
    </label>
    <script>
       $(function(){
        var reg = /^[a-zA-Z0-9_-]{6,16}$/;
        $('.uname').bind('blur',function(){
            let str = $(this).val();
            if($('input').val === null){
                $('span').removeClass();
            }
            if(reg.test(str)){
                if($('span').hasClass('wrong'))
               $('span').removeClass()
                $('span').html('输入格式正确');
                $('span').addClass('success')
            }else{
                $('span').html('输入格式错误');
                $('span').addClass('wrong')
            }
        })
       })

    </script>
</body>
</html>

显示效果为:

5、括号总结

大括号 量词符. 里面表示重复次数

中括号 字符集合。匹配方括号中的任意字符.

小括号 表示优先级

6、预定义类

预定义类指的是某些常见模式的简写方式。

三、String类中的方法

1、match()方法

match()方法:根据正则匹配出所有符合要求的内容匹配成功后将其保存到数组中,匹配失败则返回false。

例如:


var str = "It's is the shorthand of it is";
var reg1 = /it/gi;
str.match(reg1);    // 匹配结果:(2) ["It", "it"]
var reg2 = /^it/gi;	
str.match(reg2);    // 匹配结果:["It"]
var reg3 = /s/gi;	
str.match(reg3);    // 匹配结果:(4) ["s", "s", "s", "s"]
var reg4 = /s$/gi;
str.match(reg4);    // 匹配结果:["s"]

2、search()方法

search()方法:search()方法可以返回指定模式的子串在字符串首次出现的位置,相对于indexOf()方法来说功能更强大。

例如:


var str = '123*abc.456';
console.log(str.search('.*'));      	// 输出结果:0
console.log(str.search(/[\.\*]/));   	// 输出结果:3

3、split()方法

split()方法:split()方法用于根据指定的分隔符将一个字符串分割成字符串数组,其分割后的字符串数组中不包括分隔符。

例如:

按照字符串中的“@”和“.”两种分隔符进行分割。


var str = 'test@123.com';
var reg = /[@\.]/;
var split_res = str.split(reg);
console.log(split_res);    // 输出结果:(3) ["test", "123", "com"]

正则匹配方式分割字符串时,还可以指定字符串分割的次数。


var str = 'We are a family';
var reg = /\s/;
var split_res = str.split(reg, 2);
console.log(split_res);    // 输出结果:(2) ["We", "are"]

4、replace()方法

replace()方法:replace()方法用于替换字符串,用来操作的参数可以是一个字符串或正则表达式。

例如:写一个查找并替换敏感词的案例(过滤汉字和‘bad'这个单词):


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body style="display:flex">
    <div>
        <p>过滤前的内容</p>
        <textarea name="" id="" cols="30" rows="10"></textarea>
        <button id = 'btn'>过滤</button>
    </div>
    <div>
        <p>过滤后的内容</p>
        <textarea name="" id="" cols="30" rows="10"></textarea>
    </div>
    <script>
        var text = document.querySelectorAll('textarea');
        console.log(text);
        var btn = document.querySelector('button');
        btn.onclick = function() {
            text[1].value = text[0].value.replace(/(bad)|[\u4e00-\u9fa5]/gi, '*');
        }
    </script>
</body>
</html>

运行效果为: 

以上就是深入了解JavaScript中正则表达式的使用的详细内容,更多关于JavaScript正则表达式的资料请关注编程网其它相关文章!

--结束END--

本文标题: 深入了解JavaScript中正则表达式的使用

本文链接: https://www.lsjlt.com/news/159934.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 深入了解JavaScript中正则表达式的使用
    目录一、什么是正则表达式1、正则表达式特点2、正则表达式的使用二、正则表达式中的特殊字符1、正则表达式的组成2、边界符3、字符类4、量词符5、括号总结6、预定义类三、String类中...
    99+
    2022-11-12
  • 深入详解PHP正则表达式转义
    正则表达式是一种用于匹配字符串的强大工具,它可以方便地进行字符串操作。然而,在编写正则表达式的过程中,有时可能需要匹配一些特殊字符,如“\”,“|”、“{”等,这些字符在正则表达式中具有特殊含义,需要进行转义。PHP中提供了一些用于转义正则...
    99+
    2023-05-14
    php 正则表达式 正则
  • 深入浅出解析正则表达式-替换原则
    正则表达式的替换原则是指在使用正则表达式进行替换操作时,根据指定的正则表达式模式匹配到的内容将被替换为指定的替换字符串。在正则表达式...
    99+
    2023-08-11
    正则表达式
  • 深入浅析正则表达式在Java中的作用
    这篇文章将为大家详细讲解有关深入浅析正则表达式在Java中的作用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。正则表达式是什么?用我的理解就是一个表达式。用来匹配,替换,判断字符串,之前业务...
    99+
    2023-05-31
    java 正则表达式
  • Python正则表达式 r'(.*) are (.*?) .*'的深入理解
    在学习Python3的正则表达式的时候遇到一个例子 #!/usr/bin/python3 import re line = "Cats are smarter than dogs...
    99+
    2022-11-11
  • Javascript中正则表达式的应用详解
    目录stringsearchreplacematch:RegExp总结正则表达式 在前端中的应用也是比较常见的,我们在有时候也需要 用js 对某些字符串进行查找\捕获 或者 替换. ...
    99+
    2022-11-13
  • Python中使用正则表达式及正则表达式匹配规则详解
    目录1 导库2 使用模板3 说明4 示例5 正则表达式匹配规则1 导库 import re 2 使用模板 re_pattern = re.compile(pattern, flags...
    99+
    2023-03-22
    Python正则表达式匹配规则 Python正则表达式
  • 只能输入正整数的正则表达式及常用的正则表达式
    只能输入正整数的正则表达式:^[1-9]\d*$常用的正则表达式:1. 匹配手机号码:^[1][3,4,5,7,8,9]\d{9}$...
    99+
    2023-08-16
    正则表达式
  • 怎么使用javascript正则表达式
    本篇内容介绍了“怎么使用javascript正则表达式”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!表单验...
    99+
    2022-10-19
  • JavaScript如何使用正则表达式
    正则表达式是一种用来匹配字符串的模式,可以用于验证、搜索、替换字符串等。JavaScript内置支持正则表达式,本篇文章将介绍JavaScript如何使用正则表达式。正则表达式比较复杂,如果您初次接触它,可能会感到困惑。但是只要您理解了基本...
    99+
    2023-05-14
  • javascript正则表达式的使用示例
    这篇文章给大家分享的是有关javascript正则表达式的使用示例的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。JavaScript是什么JavaScript是一种直译式的脚本语言,其解释器被称为JavaScri...
    99+
    2023-06-14
  • SQL正则表达式及mybatis中使用正则表达式的方法
    小编给大家分享一下SQL正则表达式及mybatis中使用正则表达式的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!mysql...
    99+
    2022-10-18
  • 在python正则表达式中是怎样正确使用正则表达式
    这篇文章将为大家详细讲解有关在python正则表达式中是怎样正确使用正则表达式,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。现在我们已经看了一些简单的正则表达式,那么我们实际在 Python...
    99+
    2023-06-17
  • 深入浅出正则表达式中的边界\b和\B
    目录边界单词\b 单词边界\B 非单词边界举列总结正则表达式中: \b 表示单词边界 \B 表示非单词边界,应理解为(非单词)边界,而不是非(单词边界),它仍然匹配...
    99+
    2022-11-12
  • JavaScript中的正则表达式(2) (转)
    JavaScript中的正则表达式(2) (转)[@more@]正则表达式对象的属性及方法   预定义的正则表达式拥有有以下静态属性:input, multiline, lastMatch, lastParen, leftContext, ...
    99+
    2023-06-03
  • JavaScript中正则表达式的实际应用详解
    实际工作中,JavaScript正则表达式还是经常用到的。所以这部分的知识是非常重要的。 一、基础语法: 第一种:字面量语法 var expression=/pattern/f...
    99+
    2022-11-12
  • JavaScript正则表达式中g标志详解
    目录缘起解密过程搜索引擎源码层面结论缘起 有一天在思否社区看到有个问题,大致描述如下 const list = ['a', 'b', '-', 'c', 'd']; const re...
    99+
    2022-11-13
  • python 中正则表达式的使用
    正则表达式(re)(Regular Expression)。正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。在pyth...
    99+
    2023-01-31
    正则表达式 python
  • Java中正则表达式的使用
    正则表达式 什么是正则表达式 Regular Expression , 正则表达式, ⼀种使⽤表达式的⽅式对字符串 进⾏匹配的语法规则由一组持有特殊含义的字符串组成,通常用于匹配和替换文本正则的优点: 速度快, 效率⾼, 准确性⾼正则的缺点...
    99+
    2023-08-17
    正则表达式 java 开发语言
  • JavaScript中的正则表达式怎么应用
    本篇内容主要讲解“JavaScript中的正则表达式怎么应用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaScript中的正则表达式怎么应用”吧!  正则表达式(regular expr...
    99+
    2023-06-03
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作