• 第四篇、javascript


    一、正则表达式

    提示:此专题需要多轮复习反复的加深和理解

    正则表达式的两种用法:

    1)regexp.xxx(string);

    2)string.yyy(regexp);

    验证用户输入的手机号格式是否合法
           var regexp=/^1[3-8]d{9}$/;
            var input="15012345678";
            console.log(regexp.test(input))

    正则表达式主要用于表单验证

    1、直接量字符

     定义一个正则表达式对象可以使用perl风格的直接量语法

    /pattern/attributes

    说明

    直接量字符串左右不能添加‘或者”(引号)

    两个/不能省略

    参数pattern是一个正则表达式字符串

    参数attribute是一个可选的字符串,可以在“g”,“i”和“m”范围内指定,分别用于指定全局匹配、区分大小写的匹配和多行匹配

    2、字符类

     所有的单个大小写字母、数字都是一个正则表达式,用以匹配单个字符,这个字符与它本身相同

            var regexp=/ipod/;
            var data='apple ipod is No.123 cool?';
            console.log(regexp.test(data));//false
    
    
            var regexp=/ipod/;
            var data='apple ipod is No.123 cool?';
            console.log(regexp.test(data));//true
    View Code

    正则表达式有些字符有特殊的语法含义,是不能直接使用的,必须使用进行转义后才能使用

    . / * ? + [ ( ) ] { } ^ $ |

     位置匹配

    ^   在/[^123]/  表示匹配除了123的

          /^1[123]/   表示包含123的并且以1开头的

     $    表示以什么结尾

    |     /[123|456]/   表示匹配123或者456其中一个

    ,    /[123x,]/    表示匹配123x中任意一个

        表示匹配字符的边界

    B    匹配字符串的非边界   例子:“his  history  is so”  如果匹配history中的his  /[/bhis/B]            

    3、重复

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

    重复字符   含义                                  示例
    n?        匹配零次或者一次字符n          /a?/
    n*         匹配零次或者多次字符n           /a*/
    n+        匹配一次或者多次字符n            /a+/
    n{x}     匹配字符n出现x次                 /a{3}/   /d{9}/表示数字出现9次 
    n{x,y}  匹配字符n出现x到y次             /a{2,4}/   
    n{x,}    匹配字符n的出现>=x次          /a{3,}/

    4、选择、分组和引用

     范围选择,用于指定一个匹配的范围

    语法              含义                                    示例
    [abc]      匹配指定集合内的任一个字符        /[3458]/
    
    [^abc]    匹配不在指定集合内的任意字符    /[^12679]/
    
    [a-z]       匹配任一个小写字符                  /[a-z]/
    
    [0-9]      匹配任一个数字                        /0-9/
    
    [A-Z]      匹配任一个大写字符                  /A-Z/
    
    [A-z]       匹配大写A到消协z的所有字符,          /[A-z]/
                    即A-Z[]^_`a-z                   /[--籲]/  
    
    exp|exp2    使用|进行条件选择                   /ex|Ex|post|Post/
    
    (expl)     使用()指定分组  ------子表达式

    正则表达式中可以使用如下元字符引用来进行简化

    1 语法              含义                             示例
    2 d       匹配一个数字                      /d/等价于/[0-9]/
    3 D       匹配一个非数字                  /D/等价于  /[^0-9]/
    4 w       匹配一个数字/字母/下划线      /w/等价于/[0-9a-zA-Z]/
    5 W      匹配一个非数字/字符/下划线      /W/等价于/[^0-9a-zA-Z]/
    6 s        匹配一个空白字符(space)     /s/等价于/[
    
    	vf]/
    7 S       匹配一个非空白字符                 /S/等价于/[^
    
    v	f]/
    8 .         匹配除了回车和换行符的任何单个字符    /./ 等价于  /[^
    
    ]/     

    分组匹配  ,使用()把多个字符组成一个整体,这样的每个整体都会自动获得1、2、3、...这样的分组

    ()       /(abc){3}/    表示以abc为一组的匹配3组  

    /(abc)(xvv)(xx)2/  表示匹配(abc)  (xvv)这两个分组

    /(aa)(bb)(cc)/2/     表示匹配(bb)这个分组

    正则表达式分组编号的用法:

    1)直接用在正则表达式中

        /<(w+)>.*</1>/

    2)调用test()方法之后使用

        regexp.test(stuID);

        console.log(RegExp.$1);

    3)用在string.re[lace()方法中

        var data="Tome mary john maria";

        var regexp=/(mary|,maria)/ig;

        data.replace(regexp,"$1".toUpperCase());    //Tome MARY john MARIA

     5、正则表达式中的属性修饰符

     /表达式内容/属性修饰符

    属性修饰符可以在下面三个范围内选择

    1)i  匹配的时候忽略大小写

    2)g  执行全局匹配,找到一次匹配后仍然继续,知道结尾

    3)m  执行多汗匹配,会影响^(原本只匹配整个字符串的开头)和$(原来只匹配整个字符串结尾)的含义,匹配每一行的开头和结尾

  • 相关阅读:
    Makefile笔记
    GUN详解
    学习SDL
    [翻译]在ASP.NET MVC中使用TDD与依赖注入
    ASP.NET MVC Preview 3 STEP BY STEP 文章管理实例(二)
    一个小Forum Web程序示例,ASP.NET MVC Framework,TDD简介(Part 2)
    一个小Forum Web程序示例,ASP.NET MVC Framework,总体结构介绍(Part 1)
    ASP.NET MVC Preview 4 源代码学习笔记 FilterAttribute
    在ASP.NET MVC Framework 中执行简单验证(翻的)
    一个小Forum Web程序示例,SqlForumRepository,LazyList和PagedList(Part 3)
  • 原文地址:https://www.cnblogs.com/pyrene/p/6533036.html
Copyright © 2020-2023  润新知