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

js正则表达式

时间:2024-04-14 12:24:37浏览次数:21  
标签:字符 匹配 正则表达式 zA js 正则 规则 字符串

正则表达式

创建正则对象

// 构造函数
new RegExp('规则', '标识')
// 字面量书写
/规则/标识

正则常用方法

// reg是正则对象
reg.test('字符串'); // 验证字符串是否满足规则
// reg是正则对象,str是字符串
str.replace(reg, '替换目标'); // 将字符串中匹配正则的部分替换为目标

// 将字符串中匹配正则的部分传入到回调函数的参数中,将函数的返回结果进行替换
str.replace(reg, function(s){
  return '替换目标'
})

标识

标识字符 含义
i 不区分大小写
g 全局匹配,如果没有此标识,只会匹配第一个
m 多行匹配

规则

详见:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Regular_Expressions

字符匹配规则

规则书写 含义
直接书写一个普通字符 匹配书写的字符
[字符规则] 匹配[]中出现的所有字符规则
[^字符串规则] 匹配[]中没有出现的字符规则
. 匹配任意字符
\d 匹配数字,等价于 [0-9]
\D 匹配非数字
\s 匹配空白字符,包括空格、回车、换行、制表
\S 匹配所有非空白字符
\w 匹配单词字符,等价于 [A-Za-z0-9_]
\W 匹配非单词字符,等价于 [^A-Za-z0-9_]
^ 匹配字符串开始,写到规则开始位置
$ 匹配字符串结束,写到规则结束位置
\\ 匹配\

连续的规则

多个规则可以连续书写,用以匹配多个字符,例如:

/\d[a-zA-Z]/  // 匹配以1个数字紧跟一个字母

若多个规则是一个或者的关系,使用|分割

/\d[a-zA-Z]|[a-zA-Z]\d/ // 匹配以1个数字紧跟一个字母,或者一个字母紧跟一个数字

规则的重复(量词)

一个或一段规则之后,可以紧跟一个量词,表示前面的规则出现的次数

/[a-zA-Z]\d{3}/  // 匹配1个字母,后面跟上连续的3个数字,{3}是量词,应用的规则是\d
/([a-zA-Z]\d){3}/  // {3}是量词,应用的规则是 [a-zA-Z]\d
量词 含义
{n} 出现n次
{n, m} 出现n-m次
{n,} 至少出现n次
* 出现0次或多次,等价于{0,}
? 出现0次或一次,等价于{0,1}
+ 出现1次或多次,等价于{1,}

标签:字符,匹配,正则表达式,zA,js,正则,规则,字符串
From: https://www.cnblogs.com/ccblblog/p/18133972

相关文章

  • js函数防抖
    functiondedounce(fn,duration){lettimeId;//此处的this指向windowsreturnfunction(){//此处的this指向调用函数的对象constthat=this;if(timeId){clearTimeout(timeId);}//这个地方的......
  • js中this指向问题
    this是什么?在不同的场景,this指代的含义不同:在全局代码中使用this,指代全局对象(window)在真实的开发中,很少在全局代码使用this在函数中使用this,它的指向完全取决于函数是如何被调用的调用方式示例函数中的this指向通过new调用newmethod()新对象直接调......
  • IDEA中Maven项目修改JSP后通过配置Tomcat实现立即生效
    参考:IDEA中Facets和Artifacts配置说明idea中artifacts、facets、modulesIntelliJIDEA部署Web项目,终于搞懂了传统SpringMvc项目目录和对应tomcat配置如下:在日常开发过程中,我们修改完java代码后,接着就点击Build编译,然后就可以去验证代码了(前提是On'Update'Action选......
  • JS-事件绑定
    方式一:通过HTML标签中的事件属性进行绑定<inputtype="button"onclick="on()"value="按钮1"><script>functionon(){alert("我被点击了!");}</script>方式二:通过DOM元素......
  • mathjs 库支持精确的小数计算吗
    是的,Math.js库确实支持精确的小数计算。Math.js是一个开源的JavaScript数学库,专为处理各种数学任务而设计,包括但不限于精确的小数运算。它提供了丰富的数学函数和常数,并且特别关注数值计算的准确性和可靠性,特别是在处理浮点数时。浮点数在JavaScript中通常会导致精度损失问题......
  • 30 天精通 RxJS (17):Observable Operators - switch, mergeAll, concatAll
    今天我们要讲三个operators,这三个operators都是用来处理HigherOrderObservable。所谓的HigherOrderObservable就是指一个Observable送出的元素还是一个Observable,就像是二维数组一样,一个数组中的每个元素都是数组。如果用泛型来表达就像是Observable<Observab......
  • 从Google网页中通过正则表达式获取json如何转换unicode对象
    场景:Google爬虫,获取下拉框搜索关键词,需要获取页面的里面的json字符串如下面:'{\\x22aa\\x22:{},\\x22abd\\x22:{\\x22abd\\x22:false,\\x22deb\\x22:false,\\x22det\\x22:false},\\x22async\\x22:{},\\x22attn\\x22:{},\\x22bgd\\x22:{\\x22ac\\x22:true,\\x......
  • 一些奇奇怪怪的js知识
    0.关于前端为什么typeofnull得到的结果是object对于null来说,很多人会认为他是个对象类型,其实这是错误的。虽然`typeofnull`会输出`object`,但是这只是JS存在的一个悠久Bug。在JS的最初版本中使用的是32位系统,为了性能考虑使用低位存储变量的类型信息,`000`开头代......
  • SeleniumBase 制作WEB用户使用导览,并导出 JS-使用笔记(三)
    自动化福音(爬虫、办公、测试等)SeleniumBase使用笔记(三)SeleniumBase制作WEB用户使用导览,并导出JSSeleniumBase包含强大的JS代码生成器,用于将Python转换为JavaScript,而制作用户导览,就是其中的应用之一,用户导览能将SaaS产品采用率提高10倍或更多目录创建导览......
  • 30 天精通 RxJS (16):Observable Operators - catch, retry, retryWhen, repeat
    我们已经快把所有基本的转换(Transformation)、过滤(Filter)和合并(Combination)的operators讲完了。今天要讲错误处理(ErrorHandling)的operators,错误处理是异步行为中的一大难题,尤其有多个交错的异步行为时,更容易凸显错误处理的困难。就让我们一起来看看在RxJS中能如何处理......