zoukankan      html  css  js  c++  java
  • 正则表达式整理

    随着正则用的越来越普遍,今天正好有时间整理一下

    https://baike.baidu.com/item/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F/1700215?fr=aladdin

    基础概念上面文章中有

    正则表达式(Regular Expression)是一种文本模式,包括普通字符和特殊字符(元字符)

    正则表达式常见的方法

    test()方法:用于检测一个字符串是否匹配某个模式。语法:regexp.test(str);

    test()方法检查是否与给出的表达式模式相匹配,如果是则返回true,否则返回false

    举个简单的实例

    var str="abc123def";   //字符串
    var patt=/d{3}/;  //正则表达式(包含3个数字)
    document.write(patt.test(str));  //true
    

    match()方法:可在字符串内找到一个或多个指定正则表达式匹配的子字符串。方法返回值存放在匹配结果的数组中

    var str="abc123def";
    var patt=/d{3}/;
    document.write(str.match(patt)); //123   返回值
    

    exec()方法:和match()非常相似,区别它是唯一一种获得全局模式的完整模式匹配信息的方法。

    exec方法每次只匹配一个;在匹配后,它将把 RegExpObject 的 lastIndex 属性设置为匹配文本的最后一个字符的下一个位置.

    var str = "Visit W3School, W3School is a place to study web technology."; 
    var patt = new RegExp("W3School","g");
    var result;
    
    while ((result = patt.exec(str)) != null)  {
      document.write(result);
      document.write("<br />");
      document.write(patt.lastIndex);
    }
    //W3School 14 W3School 24

     例举几个常用的,具体看一看上面那个链接文章

    [xyz] [a-z] [A-Z] [0-9] 这个是一个范围 只要在这个范围内就匹配 比如[xyz] 可以匹配"x292393"或者"y887"

    + (大于等于1次)

    var str="去年是2018年,今年是2019年";
    var patt=/d+/g; //匹配字符串里面所有数字  这样写也可以 var patt=/[0-9]+/g; //匹配字符串里面所有数字
    document.write(str.match(patt).join("")) //20182019

    ? 通配符匹配0或者1个字符

    * 0或者多个字符

    var str = "1232222abc";
    var patt1 = /^[0-9]+abc$/;
    document.write(str.match(patt1));  //1232222abc
    [a-z] //匹配所有小写字母
    [A-Z] //匹配所有的大写字母
    [a-zA-Z] //匹配所有的数字
    [0-9] //匹配所有的数字
    [0-9.-] //匹配所有的数字,句号和减号
    d  //匹配一个数字字符
    D  //匹配一个非数字字符
    s  //匹配任何不可见字符
    S //匹配任何可见字符
    w //匹配包括下划线的任何单词字符  
    W  //匹配任何非单词字符
    f //匹配一个换页符
    //匹配一个回车符
    //匹配一个制表符
    //匹配一个换行符
    [f ]
    ^[a-z][0-9]$ //

    var str="a1";
    var str1="aw2";
    document.write(str.match(/^[a-z][0-9]$/)) //a1
    document.write(str1.match(/^[a-z][0-9]$/)) //null
     
    [^0-9] //除了数字紫外的所有字符这里的^表示非
    ^[a-zA-Z_]$ //所有的字母和下划线
    ^a$ //字母a
    ^a{4}$ //4个字母a
    ^a{2,4}$ //aa,aaa,aaaa
    ^a{2,}$ //包含多于两个a的字符串
    . 号 //匹配除“ ”和" "之外的任何单个字符。
    {n}  //匹配确认的n次
    {n,} //至少匹配n次
    {n,m} //最少匹配n次且最多匹配m次
     
    ^[a-zA-Z0-9_]{1,}$ //所有包含一个以上的字母、数字或下划线的字符串
    ^[1-9][0-9]{0,}$ //所有正整数
    ^-{0,1}[0-9]{1,}$ //所有整数
    ^[-]?[0-9]+(.[0-9]+)?$ // 所有的浮点数
     
     常用实例 用test()方法
    数字:^[0-9]*$  //只有字符串全部是数字才会true
    3位的数字   /^d{3}$/   
    最少3位的数字  /^d{3,}$/
    3-5位的数字  /^d{3,5}$/
    正整数  /^[1-9][0-9]*$/
    汉字: /^[u4e00-u9fa5]{0,}$/
    英文和数字 :/^[A-Za-z0-9]+$/
     
     
     
     
  • 相关阅读:
    软工实践结对作业第二次
    团队展示
    软件工程结对作业
    软工实践第二次作业
    栈的初步学习
    课程作业四
    作业
    课程作业2
    博客汇总目录
    Mybatis-plus学习笔记,基于springboot
  • 原文地址:https://www.cnblogs.com/zhihou/p/10916391.html
Copyright © 2011-2022 走看看