首页 > 其他分享 >js正则表达式

js正则表达式

时间:2022-10-27 19:33:23浏览次数:86  
标签:console log regx 正则表达式 js regx10 var match

正则表达式

概述:

正则表达式是运用于验证一种表达式,他在js中是一个对象,被称为正则对象,对应的正则对象存在对应相关的元字符。我只需要了解相关元字符及对应的可以书写一些简单的正则进行验证就可以了。

正则对象的声明

1.使用new关键词声明

//使用new关键字 g表示全局  
//第一个参数填写相关正则表达式  添加修饰符(匹配模式) g 表示 全局 i 表示 不区分大小写 m 表示换行
var regx = new RegExp('abc','g')
console.log(regx);

2.使用//来修饰(常用的)

// 第二种声明
var regx1 = /abc/g
console.log(regx1);

支持正则的四个方法

  • search 查找(根据对应的正则返回第一次找的下标 如果没有找到返回-1)
  • match 匹配  (根据对应的正则表达式返回匹配的数组,如果没有匹配的返回null)
  • split 切割(根据对应正则表达式进行字符串的分割 返回一个数组 如果不能进行分割返回的也是一个数组 (数组里面只有一个元素))
  • replace 替换(根据对应的正则表达式进行字符串的替换返回一个新的字符串 如果不能完成替换返回原本的字符串)

正则的匹配模式

  • g 全局匹配

  • i 不区分大小写

  • m 换行

  • s 单个匹配

正则的元字符(弄几个常见的吧)

^ 开头
// ^ 开头
var regx1 = /^a/ //表示以a开头
//字符串支持正则的四个方法 match 匹配 search 查找 split 分割 replace 替换
console.log('abc'.match(regx1));//['a']
$ 结尾
// $ 结尾
var regx2 = /b$/ //以b结尾
console.log('abc'.match(regx2));//null
+ 表示一个到多个
//+表示 {1,} 一个到多个
var regx6 = /^a+$/ //匹配一个a或者多个a
console.log('a'.match(regx6));//['a']
console.log('aaaa'.match(regx6));['aaaa']
\d 表示数字 相当于[0-9] \D 表示非数字 ![0-9]
// 数字表示形式
var regx9 = /^[0-9]$/ //匹配0-9之间的数字
console.log('1'.match(regx9));//['1']
console.log('0'.match(regx9));//['0']
//第二种数字表示形式 使用\d 表示为数字 [0-9] \D 非数字
var regx9 = /^\d$/
console.log('1'.match(regx9));//['1']
console.log('0'.match(regx9));//['0']
var regx9 = /^\D$/ //非数字
console.log('1'.match(regx9));//null
console.log(' '.match(regx9));//[' ']
\w 表示数字字母下滑线 相当于[0-9A-Za-z] \W表示非数字字母下滑线 ![0-9A-Za-z]
//字母 数字 下滑线 \w 表示数字字母下滑线 \W 非数字字母下滑线
var regx10 = /^[0-9A-Za-z_]$/ //表示数字字母下滑线
console.log('1'.match(regx10));//['1']
console.log('A'.match(regx10));//['A']
console.log('a'.match(regx10));//['a']
console.log('_'.match(regx10));//['_']
console.log('?'.match(regx10));//null
var regx10 = /^\w$/
console.log('1'.match(regx10));//['1']
console.log('A'.match(regx10));//['A']
console.log('a'.match(regx10));//['a']
console.log('_'.match(regx10));//['_']
console.log('?'.match(regx10));//null
var regx10 = /^\W$/
console.log('?'.match(regx10));//['?']
console.log('a'.match(regx10));//null
\s 表示空白字符 \S表示非空白字符
//空白字符 \s空白字符 \S非空白字符串 (空格 回车 制表符..)
var regx12 = /^\s$/
console.log('.'.match(regx12));//null
console.log(' '.match(regx12));//[' ']
var regx12 = /^\S$/
console.log('.'.match(regx12));//['.']
console.log(' '.match(regx12));//null

| 或者 表示其中一种

var regx = /^([ab]{2})|([12]{3})$/ //表示的是ab其中的内容构成的俩个 或者是123其中的内容构成的一个 任意其中一个
//匹配的内容 aa ab bb ba 或者是 111 121 211 122 112 222 212 221
console.log('121'.match(regx));//['121']
console.log('aa'.match(regx));//['aa']
//忽略掉后面的内容
console.log('aa1'.match(regx));//['aa']

关于正则对象的属性及方法

属性
console.log(regx.dotAll);//是否在正则表达式中一起使用"s"修饰符
console.log(regx.flags);//模式修饰
console.log(regx.global);//是否全局匹配 g
console.log(regx.ignoreCase);//是否区分大小写 i
console.log(regx.multiline);//是否换行 m
console.log(regx.unicode);//是否进行编码匹配
console.log(regx.source);//表示里面内容
console.log(regx.sticky);//黏性
方法
  • test 测试是否符合当前的正则表达式 (符合返回true 不符合返回false)
  • exec 执行方法 (类似于match 返回一个数组 匹配不成功返回null)
    var regx = /^[abc]{2}$/ //匹配ab aa ac bc bb ba ca cb cc
    console.log(regx.lastIndex);//返回lastIndex表示最后的下标 他是属于可读可写 默认值为0
    //传入需要匹配的字符串 匹配成功返回true 失败返回false
    console.log(regx.test('ab'));//true
    console.log(regx.test('aaa'));//false
    regx.lastIndex = 3 //自动默认更改 设置值为0
    console.log(regx.test('ab'));//true
    //执行方法 exec
    console.log(regx.exec('ab')); //返回一个匹配的数组 类似match方法
    console.log(regx.exec('abc')); //匹配不成功返回null

     

lastIndex

 

标签:console,log,regx,正则表达式,js,regx10,var,match
From: https://www.cnblogs.com/tch001/p/16833481.html

相关文章

  • vue2 使用video.js
    页面内使用//外层div<divclass="video-class"v-if="isShowVideoDialog"><!--<videowidth="100%"height="100%"controls:src="playUrl"></video>--><video......
  • vue.config.js 学习记录
    Vue-cli4将webpack深度集成,不对外展示webpack具体配置,在vue.config.js中可以更改配置:Vue.config.js的基本内容为:module.exports={ publicPath:'/smart-dispa......
  • js-webuploader+js如何实现分片+断点续传
    ​ 我们平时经常做的是上传文件,上传文件夹与上传文件类似,但也有一些不同之处,这次做了上传文件夹就记录下以备后用。首先我们需要了解的是上传文件三要素:1.表单提交方式......
  • js判断一个变量是否存在值得简单方法
    在编码过程中,有时候我们需要对一个变量判断其是否有值,这里有一种比较不错的方法判断:!!variable//返回True为存在值,返回False为不存在值注意是双感叹号“!!”示例......
  • 【js】元素是否在可视区范围内
    公式:元素到顶部距离(最近的具有定位父级元素)- 滚动条高度 <=可视区的高度  offsetTop、scrollTop  <!DOCTYPEhtml><htmllang="en"><head><me......
  • nodejs实现jwt
    jwt是jsonwebtoken的简称,本文介绍它的原理,最后后端用nodejs自己实现如何为客户端生成令牌token和校验token1.为什么需要会话管理我们用nodejs为前端或者其他服务提供......
  • js
    JavaScript:运行在客户端的脚本语言,不需要预编译,运行过程中由js引擎逐行进行解释并执行,现在可以基于node.js技术进行服务器端编程  用于实现逻辑和页面控制   ......
  • js函数式编程讲解
    什么是函数式编程是一种编程范型,它将电脑运算视为数学上的函数计算,并且避免使用程序状态以及易变对象。函数式编程更加强调程序执行的结果而非执行的过程,倡导利用若干简......
  • js实现字符串数组转换成数字数组的几种方式
      参考:https://blog.csdn.net/sumimg/article/details/114314438......
  • Python之JSON用法解析
    前景Python编写HDFS服务安装的过程中,需要将构建好的JSON对象输出到文件,采用那种方式更便捷方案1open函数defwriteExecCmdCheckActionsFile(self,out_res,che......