JavaScript正则表达式

66 阅读3分钟

一.为什么要学习正则表达式(即学习正则表达式的用途和意义)

对于学习正则表达式的意义(作用),大致总结为以下三点:

  1. 为了校验:用于检测用户提交的表单或其他来源的字符串是否符合要求
  2. 过滤敏感的词汇:对于某些涉及不当言论的话我们常常需要进行一定的过滤,相信大家在游戏过程中经常遇到某些话被替换为了一些特殊的符号如*号
  3. 从字符串中提取我们想要的部分:比如我们想要收集某个话题大家的情感倾向,则需要从中提取一些表达情绪的词汇

二.什么是正则表达式?(即了解正则表达式的概念)

正则表达式通俗的讲就是一种匹配指定字符组合的规则,我们可以通过它区分某些字符串是否符合我们制定的规则

三.如何使用正则表达式(即熟悉正则表达式的语法)

1.如何定义规则(如何定义正则表达式)

 const reg = '/表达式/'

语法中包含的表达式如何书写呢?

一.首先我们要认识到表达式中能够书写什么:

在表达式中我们可以书写两类字符,根据其灵活性,可以分为两类:

  • 普通字符:这类字符只能够匹配和自身相同的字符,比如所有的字母数字
  • 元字符(即特殊字符):这类字符有特殊的含义,可以匹配更多的字符或者规定匹配的顺序等等

二.元字符有哪些呢?按照用途可以分为三类:

  • 边界符:是规定开头和结尾的,即用什么开头,用什么结尾
  • 量词:规定某个字符重复出现次数
  • 字符类:规定字符属于哪种类型的,比如从0~9

三.三类特殊字符的语法:

  • 边界符:

    ^表示以后面第一个字符开头

    $表示以$前面的第一个字符结尾

  • 量词

    *表示其前面的字符重复零次或者以上次数

    +表示其前面的字符重复一次或者以上次数

    ?表示其前面的字符重复零次或者一次

    {n}表示其前面的字符重复n次

    {n,}表示其前面的字符重复n次及以上

    {n,m}表示其前面的字符重复n到m次

  • 字符类

    []表示匹配括号中字符中的任意一个

    [a-c]表示匹配从a到c中的任意一个字符

    [^abc]表示匹配不属于括号中的任意字符

    .表示匹配任意一个字符除开换行符

    \d表示匹配[0,9]中的任意一个整数

    \D相当于[^0-9]

    \w相当于[A-Za-z0-9]

    \W相当于[^A-Za-z0-9]

    \s匹配空格(包含换行符,制表符),[\t\r\n\f]

    \S相当于[^\t\r\n\f]

    说完了如何书写正则表达式,回到正题,当我们有了正则表达式后,就表明我们拥有了指定规则的能力,那我们如何使用这些规则呢?

2.如何使用规则

//1.定义规则
const reg = /^你好/

//2.使用规则
    //检验是否包含有符合规则的字符串
    console.log(reg.test('你好世界'))//用reg.test('str'),结果是true
    //提取
    console.log(reg.exec('你好世界'))//exec会检验是否包含reg中的字符串,并返回检测到的字符串的第一个字符出现的序号(0开始),结果是一个数组
    //替换
    '你好世界'.replace(reg,'美好')//美好世界
    /*注意
    /表达式/i i表示忽略字母的大小写区别,g表示全部符合正则要求
    */
    
    

写在最后

文章是从个人初学的角度书写,内容简略,不足尚多,欢迎大家评论私信~

更多交流欢迎添加: 微信:nhhyyp qq:2479476436