zoukankan      html  css  js  c++  java
  • 正则基础知识

    正则的一些基础知识

    创建正则

    • 通过构造函数 const pattern = new RegExp(pattern,modifiers)

      • pattern: 匹配的字符串形式,可以有变量

      • modifiers: 匹配的模式,g(全局),i(忽略大小写),u(多行)

    • 字面量的形式: const pattern = /pattern/g

      • pattern: 匹配的内容

    正则的方法

    • reg.test(str): 检测一个字符串是否有要匹配的内容,返回一个布尔值

    • reg.exec(str):该方法为专门为捕获组而设计的(每一个小括号是一个捕获组)

      • 参数:要匹配的字符串

      • 返回值:返回的是一个数组。如果不匹配则返回null

      • 关于返回值数组的说明:

        • 它确实是Array的实例。

        • 但是这个数组有两个额外的属性:index和input

        • index:表示匹配的字符串在源字符串中的索引

        • input:表示匹配的源字符串。

        • 数组的第一项目是与整个模式匹配的字符串,其他项是与模式中捕获组匹配的字符串

        • 如果没有捕获组,则数组中只有第一项

    正则表达式的一些规则

    • /[0-9a-zA-Z]/: 匹配[]里面的任意字符

    • /(abc|def)/: 匹配|中的一项

    • /[^0-9]/: 匹配非数字

    • d: 匹配数字

    • D: 匹配非数字

    • w: 匹配字母和数字以及 _

    • W: 匹配非(字母和数字以及_)

    • : 匹配空格子字符

    • : 匹配换行符

    • : 匹配制表符

    • : 匹配null字符

    • :匹配回车字符

    • s: 匹配空白字符、空格、字表符和换行符

    • S: 匹配非空白字符

    • ^: 行首匹配

    • $: 行尾匹配

    • ?: 0或1个

    • *: 0或多个

    • +: 至少一个

    • {m}: m次

    • {m,n}: m到n次

    • {m,}: 至少m次

    支持正则表达式的字符串方法

    • search: 检索与正则表达式相匹配的第一个匹配项的索引

    • match: 找到一个或多个正则表达式的匹配。其实和正则表达式的exec方法比较像

    • replace(reg|str,str|fn)

      • 第二个参数是一个字符串时,会对匹配到的字符进行替换.(正则可以全局替换)

      • 第二个参数是函数时,会对匹配到每一个字符进行回调,回调的第一个参数是匹配到的字符

        • 第一个参数是字符串时,回调的第二个参数时匹配到的字符的索引,第三个参数是整个字符

        • 第二个参数是正则时,若匹配到的字符没有捕获时,和上面一样.若有捕获,则捕获的项会作为参数传进来,捕获后面的参数则和上面的一样

    • 一些例子

      • 获取query的参数


        function getQueryByName(name) {
           const search = location.search
           const ret = search.match(new RegExp('[?&]'+name+'([^&]'*))
           return ret&&ret.length > 0 ? ret[1] : ''                        
        }
  • 相关阅读:
    算法导论(第三版)Exercises2.1(插入排序、线性查找、N位大数相加)
    含铝馒头可能损伤儿童的智力
    每秒3600乘以100等于36万次售票解决方案
    namespace Measure
    public interface ICloneable
    VB.net 与线程
    C#调用VP 包含素材
    C# 定时器 一个简单 并且可以直接运行的Demo
    松下 激光位移传感器 API
    在Win7系统下, 使用VS2015 打开带有日文注释程序出现乱码的解决方案
  • 原文地址:https://www.cnblogs.com/webbeyond/p/8907646.html
Copyright © 2011-2022 走看看