详解JavaScript的正则表达式

编程之家收集整理的这篇文章主要介绍了详解JavaScript的正则表达式编程之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
一、正则表达式

正则表达式是用于匹配字符串的语法。在 JavaScript中,被用于 RegExp 的 exec 和 test 方法, 以及 String 的 match、matchAll、replace、search 和 split 方法正则表达式语法,看这里!


1、创建正则表达式

法一 在加载脚本时就会被编译,性能高于法二。如果正则表达式不会改变,推荐使用法一。

@H_403_12@// 法一: var re = /ab+c/[flags]; // 法二: var re = new RegExp("ab+c"[,flags]); // flags 可用值 :g(全局匹配)、i(忽略大小写)、m(多行匹配)、s(点号匹配所有字符)、u(unicode)、y(sticky,粘性匹配)。

2、可用方法

描述

RegExp方法,查找字符串中的匹配项,返回一个数组(未匹配返回 null)

RegExp方法,测试是否有匹配项,返回true或false

String方法,查找字符串中的匹配项,返回一个数组(未匹配返回 null)

String方法,查找字符串中所有匹配项,返回一个迭代器(iterator)

String方法,测试是否有匹配项,返回匹配项的位置索引,失败时返回-1

String方法,查找字符串中的匹配项,并用指定字符串替换匹配项

String方法,用指定字符串分割字符串,返回字符串数组


二、怎么用?
1、字面常量

可以直接用 字面常量 来写正则表达式,再用 exec() 方法执行。

@H_403_12@// 1、实例 var myRe = /ab*/g; var str = 'abbcdefabh'; var myArray; while ((myArray = myRe.exec(str)) !== null) { var msg = 'Found ' + myArray[0] + '. '; msg += 'Next match starts at ' + myRe.lastIndex; console.log(msg); } // 输出: Found abb. Next match starts at 3 Found ab. Next match starts at 9
@H_403_12@// 2、实例:从 URL 中提取子域名 var url = "http://xxx.domain.com"; console.log(/[^.]+/.exec(url)[0].substr(7)); // 输出:xxx

2、RegExp对象

使用 RegExp 对象,来进行正则表达式匹配。

@H_403_12@// RegExp语法:pattern 是正则表达式文本 new RegExp(pattern[, flags]) RegExp(pattern[, flags])
  • 创建 RegExp 对象
@H_403_12@new RegExp('ab+c', 'i'); // 首个参数为字符串模式的构造函数 new RegExp(/ab+c/, 'i'); // 首个参数为常规字面量的构造函数
  • 实例
@H_403_12@const regex1 = RegExp('foo*', 'g'); const str1 = 'table football, foosball'; let array1; while ((array1 = regex1.exec(str1)) !== null) { console.log(`Found ${array1[0]}. Next starts at ${regex1.lastIndex}.`); // expected output: "Found foo. Next starts at 9." // expected output: "Found foo. Next starts at 19." }

3、String

可以使用 String 的方法来执行正则表达式。

@H_403_12@// 1、实例 let re = /(\w+)\s(\w+)/; let str = "John Smith"; let newstr = str.replace(re, "$2, $1"); console.log(newstr); // 输出为:Smith, John
@H_403_12@// 2、实例 var str = 'For more @R_591_4037@ion, see Chapter 3.4.5.1'; var re = /see (chapter \d+(\.\d)*)/i; var found = str.match(re); console.log(found);

三、参考文档

总结

以上是编程之家为你收集整理的详解JavaScript的正则表达式全部内容。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给好友。

原文地址:https://cloud.tencent.com/developer/article/1924943

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

JavaScript相关文章

编写程序是为了让我们更高效的处理问题,但在生活中我们常常遇到一些重复性的动作,也就是当我们希望一遍又一遍的执行多次代码,但是每一次执行代码的值有不同的时候我们就可以使用循环语句来解决问题。
JavaScript1. Promise 的理解Promise 是一种为了避免回调地狱的异步解决方案 2. Promise 是一种状态机: pending(进行中)、fulfilled(已成功)和rejected(已失败) 只有异步操作的结果,可以决定当前是哪一种状态,任何其他操作都无法改变这个状态。回调地狱回调函数中嵌套回调函数的情况就叫做回调地狱。回调地狱就是为是实现代码顺序执行而出现的一种操作,它会造成我们的代码可读性非常差,后期不好维护。一、Promise是什么?Promise是最早
在谈sort之前,我们先了解一下原地算法,什么事原地算法呢?所谓**原地算法**就是说基于原有的数据结构进行一定的操作修改,而不借助额外的空间。使用原地算法时,其内存干净,空间复杂度是O(1),可以减少没必要的内存,避免造成内存浪费和冗余。当然,减小内存损耗会带来算法复杂度和时间消耗的增加,所以是一个Tradeoff。**Tradeoff** 是一种针对目标选择有效的路径的思维方式,需要对做的事情权衡利弊,选择最佳方式处理问题。
牛客是可以伴随一生的编程软件(完全免费),从学校到社会工作,时时刻刻你都可以用到,
官网介绍说:Pinia 是 Vue 的存储库,它允许您跨组件/页面共享状态。的方式是经过优化的,会加快修改速度,对程序的性能有很大的好处。虽然可以直接修改,但是出于代码结构来说, 全局的状态管理还是不要直接在各个组件处随意修改状态,应放于。方法的第二个参数:配置对象,放置state,getters,actions。属性: 修改state全局状态数据,可以是异步也可以是同步。方法的第一个参数:容器的名字,名字必须唯一,不能重复。属性: 用来监视或者说是计算状态的变化的,有缓存的功能。
通过useImperativeHandle的Hook,将传入的ref和useImperativeHandle第二个参数返回的对象绑定到了一起;所以在父组件中,使用 inputRef.current时,实际上使用的是参数二返回的对象;但是,事实上在上面的案例中,我们只是希望父组件可以操作的focus,其他并不希望它随意操作。那么我们就可以在子组件的内部, 在重新定义一个ref对象, 再将想要暴露的操作暴露出去即可。子组件拿到父组件中创建的ref,绑定到自己的某一个元素中;等等, 我们希望可以限制它的操作;
JS逆向 Frida - 夜神模拟器安装配置 基本使用
Effect Hook 可以让你来完成一些类似于class中生命周期的功能;事实上,类似于网络请求、手动更新DOM、一些事件的监听,都是React更新DOM的一些副作用(Side Effects);所以对于完成这些功能的Hook被称之为 Effect Hook;