• JavaScript之正则表达式


            正则表达式(regular expression)简称regex,是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。正则表达式主要用来验证客户端的输入数据

    给定一个正则表达式和另一个字符串,我们可以达到如下的目的:

    1. 给定的字符串是否符合正则表达式的过滤逻辑(称作“匹配”);

    2. 可以通过正则表达式,从字符串中获取我们想要的特定部分。


    一、创建正则表达式:


    1、new运算符

    <strong><span style="font-size:18px;"><strong><span style="font-size:18px;">var box =new RegExp('box');//第一个参数字符串
    var box=new RegExp('box','ig');//第二个参数可选模式修饰符</span></strong></span></strong>


    2、字面量方式

    <strong><strong>var box=/box/;//直接用两个反斜杠
    var box=/box/ig;//在第二个斜杠后面加上模式修饰符</strong></strong>


    二、测试正则表达式:


            RegExp对象包含两个方法:test()和exec()

    1、test()

            test()方法在字符串中查找是否存在指定的正则表达式并返回布尔值,如果存在则返回true,不存在则返回false。

    <strong><span style="font-size:18px;"><strong><span style="font-size:18px;"><html>
    <body>
    
    <script type="text/javascript">
    var box=new RegExp("e");
    
    document.write(box.test("The best things in life are free"));
    </script>
    
    </body>
    </html></span></strong></span></strong>



    2、exec()

            exec()方法也用于在字符串中查找指定正则表达式,如果exec()方法执行成功,则返回包含该查找字符串的相关信息数组。如果执行失败,则返回null。

    <strong><span style="font-size:18px;"><strong><span style="font-size:18px;"><html>
    <body>
    
    <script type="text/javascript">
    var box=new RegExp("e");
    
    document.write(box.exec("The best things in life are free"));
    </script>
    
    </body>
    </html>
    </span></strong></span></strong>

    三、String对象中的正则表达式方法



    <strong><span style="font-size:18px;"><strong><span style="font-size:18px;"><!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>replace/match</title>
    </head>
    <script language="javascript" type="text/javascript">
    var str="Windows 是一个很优秀的系统,我喜欢Windows!";
    alert(str);
    </script>
    <body>
    </body>
    
    </html></span></strong></span></strong>

    1、match

    <strong><span style="font-size:18px;"><strong><span style="font-size:18px;"><!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>replace/match</title>
    </head>
    <script language="javascript" type="text/javascript">
    var str="Windows 是一个很优秀的系统,我喜欢Windows!";
    //定义变量reg
    var reg=/Windows/g;
    /*var tmp=str.replace(reg,"Linux");
    alert(tmp);*/
    var found=str.match(reg);
    alert(found);
    </script>
    <body>
    </body>
    </html>
    </span></strong></span></strong>

    2、replace

    <strong><strong><!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>replace/match</title>
    </head>
    <script language="javascript" type="text/javascript">
    var str="Windows 是一个很优秀的系统,我喜欢Windows!";
    //定义变量reg
    var reg=/Windows/g;
    var tmp=str.replace(reg,"Linux");
    alert(tmp);
    </script>
    <body>
    </body>
    </html></strong></strong>
    


    四、贪婪和惰性:

    贪婪:先匹配整个字符串,然后从右往左,不匹配就舍去一个 ... 
    惰性:从左往右匹配,第一个不匹配就再加第二个...  


    <strong><strong>var pattern=/[a-z]+?/;/?号关闭了贪婪匹配,只替换了第一个
    var str='abcdefjhijklmnopqrstuvwxyz';
    var result=str.replace(pattern,'xxx');
    alert(result);</strong></strong>


    禁止贪婪的两种形式:
    <strong><strong>var pattern=/8(.+?)8/g;//禁止了贪婪,开启的全局
    var str='This is 8google8,That is 8google8,There is 8google8';
    var result=str.replace(pattern,'<strong>$1<strong>');
    document.write(result);</strong></strong>

    <strong><strong>var pattern=/8([^8]*)8/g;//另一种禁止贪婪
    var str='This is 8google8,That is 8google8,There is 8google8';
    var result=str.replace(pattern,'<strong>$1</strong>');
    document.write(result);</strong></strong>

    总结:

            常用到的正则表达式有检查邮政编码,删除多余空格,简单的电子邮件验证等等。正则表达式的灵活性、逻辑性和功能性非常的强;可以迅速地用极简单的方式达到字符串的复杂控制,同时可以节约大量的服务器端的系统资源,并且提供更好的用户体验。


  • 相关阅读:
    高中函数知识点太多记不住?一张思维导图教你轻松学习函数
    电脑录屏软件哪个好?两类高效录屏软件的使用方法
    时间都去哪了?学会高效管理工作时间,天天都能“摸鱼”
    PPT中如何做炫酷帘幕动画?操作很简单,一起看看吧
    mp3转换器哪个好?教你两个快速转换音频文件的方法
    安利5款实用的微信小程序,便捷高效,百用不厌
    录屏软件哪个好?分享两个高效录屏的方法
    这就是大部分男生被分手的原因
    去水印软件如何使用?一个快速去除视频水印的方法
    Thinkphp6开启多应用模式
  • 原文地址:https://www.cnblogs.com/chenxiaochan/p/7237623.html
Copyright © 2020-2023  润新知