前端JavaScript入门-day08-正则表达式

目录

介绍

语法 

元字符 

边界符 

量词 

字符类:

修饰符


介绍


正则表达式(Regular Expression)是用于匹配字符串中字符组合的模式。在 JavaScript中,正则表达式也是对象,通常用来查找、替换那些符合正则表达式的文本
正则表达式在 JavaScript中的使用场景:
例如验证表单:用户名表单只能输入英文字母、数字或者下划线, 昵称输入框中可以输入中文( 匹配 )    比如用户名: /^[a-z0-9_-]{3,16}$/

过滤掉页面内容中的一些敏感词( 替换 ),或从字符串中获取我们想要的特定部分( 提取 )等 
语法 
1. 定义正则表达式语法:

const变量名=/表达式/

其中 / / 是正则表达式字面量

比如:

const reg=/前端/

2.判断是否有符合规则的字符串: 

test() 方法 用来查看正则表达式与指定的字符串是否匹配
语法:

regObj.test(被检测的字符串)

比如:

console.log(/哈/.test('哈')) // true
console.log(/哈/.test('哈哈')) // true
console.log(/哈/.test('二哈')) // true


如果正则表达式与指定的字符串匹配 ,返回true,否则false
3.检索(查找)符合规则的字符串:

exec() 方法 在一个指定字符串中执行一个搜索匹配


语法:

regObj.exec(被检测字符串)

比如:

​
//要检测的字符串
const str = '前端开发培训,IT培训课程, web前端培训, 人工智能培训1.定义正则表达式,检测规则
>'
onst reg =/前端/
//2.检测方法
console.log(reg.exec( str)) //返回的是数组​

如果匹配成功,exec() 方法返回一个数组,否则返回null


元字符 


普通字符:
大多数的字符仅能够描述它们本身,这些字符称作普通字符,例如所有的字母和数字。
也就是说普通字符只能够匹配字符串中与它们相同的字符。
元字符(特殊字符)
是一些具有特殊含义的字符,可以极大提高了灵活性和强大的匹配功能。
比如,规定用户只能输入英文26个英文字母,普通字符的话 abcdefghijklm…..
但是换成元字符写法: [a-z]
为了方便记忆和学习,我们对众多的元字符进行了分类:
         边界符(表示位置,开头和结尾,必须用什么开头,用什么结尾)
        量词 (表示重复次数)
        字符类 (比如 \d 表示 0~9)


边界符 


正则表达式中的边界符(位置符)用来 提示字符所处的位置 ,主要有两个字符

如果 ^ 和 $ 在一起,表示必须是精确匹配。 

   

 console.log(/^哈/.test('哈')) // trueconsole.log(/^哈/.test('哈哈')) // trueconsole.log(/^哈/.test('二哈')) // flaseconsole.log(/^哈$/.test('哈')) // true  只有这种情况为true 否则全是falseconsole.log(/^哈$/.test('哈哈')) // falseconsole.log(/^哈$/.test('二哈')) // false


量词 
量词用来 设定某个模式出现的次数 

注意: 逗号左右两侧千万不要出现空格

    //  量词 * 类似 >=0 次console.log(/^哈$/.test('哈')) // trueconsole.log(/^哈*$/.test('')) // trueconsole.log(/^哈*$/.test('哈')) // trueconsole.log(/^哈*$/.test('哈哈')) // trueconsole.log(/^哈*$/.test('二哈很傻')) //  falseconsole.log(/^哈*$/.test('哈很傻')) //  falseconsole.log(/^哈*$/.test('哈很哈')) // falseconsole.log('------------------')//  量词 + 类似 >=1 次console.log(/^哈$/.test('哈')) // trueconsole.log(/^哈+$/.test('')) // falseconsole.log(/^哈+$/.test('哈')) // trueconsole.log(/^哈+$/.test('哈哈')) // trueconsole.log(/^哈+$/.test('二哈很傻')) //  falseconsole.log(/^哈+$/.test('哈很傻')) //  falseconsole.log(/^哈+$/.test('哈很哈')) // falseconsole.log('------------------')//  量词 ? 类似  0 || 1console.log(/^哈?$/.test('')) // trueconsole.log(/^哈?$/.test('哈')) // trueconsole.log(/^哈?$/.test('哈哈')) // trueconsole.log(/^哈?$/.test('二哈很傻')) //  falseconsole.log(/^哈?$/.test('哈很傻')) //  falseconsole.log(/^哈?$/.test('哈很哈')) // false// 量词 {n} 写几,就必须出现几次console.log(/^哈{4}$/.test('哈')) //  falseconsole.log(/^哈{4}$/.test('哈哈')) //  falseconsole.log(/^哈{4}$/.test('哈哈哈')) //  falseconsole.log(/^哈{4}$/.test('哈哈哈哈'))// trueconsole.log(/^哈{4}$/.test('哈哈哈哈哈')) //  falseconsole.log(/^哈{4}$/.test('哈哈哈哈哈哈')) //  falseconsole.log('------------------')// 量词 {n,}   >=nconsole.log(/^哈{4,}$/.test('哈'))//  falseconsole.log(/^哈{4,}$/.test('哈哈'))//  falseconsole.log(/^哈{4,}$/.test('哈哈哈'))//  falseconsole.log(/^哈{4,}$/.test('哈哈哈哈'))// trueconsole.log(/^哈{4,}$/.test('哈哈哈哈哈'))// trueconsole.log(/^哈{4,}$/.test('哈哈哈哈哈哈'))// trueconsole.log('------------------')

字符类:


[ ] 匹配字符集合
后面的字符串只要包含 abc 中任意 一个字符 ,都返回 true 。
 

  // 字符类   [abc]  只选1个console.log(/^[abc]$/.test('a'))  // trueconsole.log(/^[abc]$/.test('b'))  // trueconsole.log(/^[abc]$/.test('c'))  // trueconsole.log(/^[abc]$/.test('ab'))  // falseconsole.log(/^[abc]{2}$/.test('ab'))  // true

使用连字符 - 表示一个范围

console.log(/^[a-z]$ /.test( 'c '))//true

比如:
     [a-z] 表示 a 到 z 26个英文字母都可以
     [a-zA-Z] 表示大小写都可以
     [0-9] 表示 0~9 的数字都可以
认识下:

 

腾讯QQ号:^[1-9][0-9]{4,}$(腾讯QQ号从100日0开始)
   // 字符类   [a-z]  只选1个console.log(/^[A-Z]$/.test('p'))  // falseconsole.log(/^[A-Z]$/.test('P'))  // trueconsole.log(/^[0-9]$/.test(2))  // trueconsole.log(/^[a-zA-Z0-9]$/.test(2))  // trueconsole.log(/^[a-zA-Z0-9]$/.test('p'))  // trueconsole.log(/^[a-zA-Z0-9]$/.test('P'))  // true


[ ] 里面加上 ^ 取反符号
比如:
     [^a-z] 匹配除了小写字母以外的字符
     注意要写到中括号里面
. 匹配除换行符之外的任何单个字符
预定义:指的是 某些常见模式的简写方式。

修饰符

修饰符约束正则执行的某些细节行为,如是否区分大小写、是否支持多行匹配等

日期格式:^\d{4}-\d{1,2}-ld{1,2}

语法:

  i 是单词 ignore 的缩写,正则匹配时字母不区分大小写
  g 是单词 global 的缩写,匹配所有满足正则表达式的结果

console.log(/a/i.test( 'a' ))/ l/ true
console.log(/a/i.test( 'A'))/ / true


替换 replace

语法:


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/202692.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

书-用数组存储高于60低于70的人单独存起来

#include<stdio.h> # define N 10 //书-用数组存储高于60低于70的人单独存起来 int main(){float s[N]{68.2,62.3,63.4,34.5,45.6,56.7,67.8,78.9,89.0,100};int i;float diyu[100];int j0;for(i0;i<N;i){if(s[i]>60 && s[i]<70)diyu[j]s[i];//这里的范…

【数据结构】——二叉树特点

前言&#xff1a;我们前面已经了解了二叉树的一些概念&#xff0c;那么我们今天就来了解下二叉树的遍历实现和一些性质。 二叉树的遍历方式有三种&#xff1a;前序&#xff0c;中序&#xff0c;后序。 前序&#xff1a;先根节点&#xff0c;再左子树&#xff0c;最后右子树。 中…

绘制6层及以上PCB板,需要明白PCB板的结构和叠层

PCB主要由PP半固化片和core芯板压合而成&#xff0c;其中core芯板两面都有铜箔&#xff0c;是PCB板的导电介质&#xff1b;PP半固化片是绝缘材料&#xff0c;用于芯板的粘合。 在PP半固化片被层压后&#xff0c;其环氧树脂被挤压开来&#xff0c;将core芯板粘合在一起。 PCB的叠…

Python代码将txt里面多行json字符串转成excel文件

python 代码 将txt里面的多行json字符串转成excel history.txt文件json代码样例 Json转换Excel代码 import json import pandas as pddef json_out(file_path,excel_path):all_list[]with open(file_path, "r", encodingutf-8) as f:for line in f:all_list.append…

Tuxera NTFS2024安装包下载教程

在听到小凡的电话说“Tuxera NTFS for Mac软件安装失败&#xff0c;怎么办”的时候&#xff0c;小编心里真像有一万头草泥马在奔腾——苹果软件还能安装失败&#xff01;&#xff1f; 挥手把一万头草泥马赶走&#xff0c;脑补着苹果软件的安装&#xff0c;小编对着电话吼道&am…

配置主机与外网时间服务器同步时间

目录 NTP服务简介 时间管理命令 第一步&#xff1a;更改当前主机所在地的时间 方法一&#xff1a;使用tzselect命令查询需要的时区 1、使用tzselect命令查询需要的时区 2、添加变量到 ~/.bash_profile 文件中&#xff0c;即追加类似的内容&#xff1a; 3、重新连接一个…

LLM大语言模型(一):ChatGLM3-6B本地部署

目录 前言 本机环境 ChatGLM3代码库下载 模型文件下载 修改为从本地模型文件启动 启动模型网页版对话demo 超参数设置 GPU资源使用情况 &#xff08;网页对话非常流畅&#xff09; 前言 LLM大语言模型工程化&#xff0c;在本地搭建一套开源的LLM&#xff0c;方便后续的…

深入了解UUID:生成、应用与优势

一、引言 在当今数字化时代&#xff0c;唯一标识一个对象的能力变得越来越重要。UUID&#xff08;Universally Unique Identifier&#xff0c;通用唯一标识符&#xff09;应运而生&#xff0c;作为一种保证全球唯一性的标识方法&#xff0c;广泛应用于各种场景。本文将详细介绍…

HTML程序大全(2):通用注册模版

一、正常情况效果 二、某项没有填写的效果 三、没有勾选同意项的效果 四、代码 <!DOCTYPE html> <html> <head><meta charset"UTF-8"><title>注册</title><style>body {font-family: Arial, sans-serif;background-color…

21章网络通信

21.1——网络程序设计基础 网络程序设计编写得到是与其他计算机进行通信的程序 21.1.1——局域网与互联网 为了实现两台计算机的通信&#xff0c;必须用一个网络线路连接两台计算机 21.1.2——网络协议 网络协议规定了计算机之间连接的物理、机械 (网线与网卡的连接规定)、…

「智慧城市」这一概念科学吗?还是炒作?

智慧城市是一个综合性的概念&#xff0c;它利用信息技术和创新概念&#xff0c;将城市的各个系统和服务集成起来&#xff0c;以提升城市运行效率、优化城市管理和服务&#xff0c;改善市民的生活质量。 具体来说&#xff0c;智慧城市涵盖了许多领域&#xff0c;包括城市规划、建…

通过仿真理解信道化接收机分析过程

概要 信道化从子信道带宽划分上可分为临界抽取和非临界抽取两种&#xff0c;从各子信道中心频率布局上可分为偶型排列和奇型排列&#xff0c;从处理流程上可分为信道化分析与信道化综合过程。本文主要通过仿真来理解偶型排列/临界抽取/信道化分析过程。 基本原理 常规的数字…

ESP32网络开发实例-发送邮件

发送邮件 文章目录 发送邮件1、邮件发送配置2、软件准备3、硬件准备4、代码实现本文将详细介绍在ESP32中如何使用SMTP协议发送邮件。 1、邮件发送配置 在本次实例中,我们将通过QQ邮箱向指定邮件地址发送邮件。 第一步,注册QQ邮箱 第二步,开启QQ邮箱SMTP/IMAP 服务: 生成…

6.1810: Operating System Engineering 2023 <Lab4 traps: Traps>

一、本节任务 二、要点&#xff08;Traps and system calls&#xff09; 有三种事件会使 CPU 暂停当前的指令执行&#xff0c;并强制将控制转移到处理该事件的特殊代码中&#xff1a; 系统调用&#xff08;ecall&#xff09;&#xff1b;异常&#xff08;如非法指令&#xff…

重磅!苹果官方发布大模型框架:一个可以充分利用苹果统一内存的新的大模型框架MLX,你的MacBook可以一键运行LLaMA了

本文来自DataLearnerAI官方网站&#xff1a;重磅&#xff01;苹果官方发布大模型框架&#xff1a;一个可以充分利用苹果统一内存的新的大模型框架MLX&#xff0c;你的MacBook可以一键运行LLaMA了 | 数据学习者官方网站(Datalearner)https://www.datalearner.com/blog/105170187…

Java 输入输出流03

8. 字符流 Writer/Reader Java 中字符是采用 Unicode 标准&#xff0c;一个字符是 16 位&#xff0c;即一个字符使用两个字节来表示。为此&#xff0c;JAVA 中引入了处理字符的流。 1&#xff09;Reader抽象类 用于读取字符流的抽象类。子类必须实现的方法只有 read (char [],…

“数”说新语向未来 | GBASE南大通用2023媒体交流会成功举办

在当前国家信创战略加速实施&#xff0c;及国民经济数字化转型&#xff0c;叠加驱动信息化行业加速发展的大形势下&#xff0c;以“数说新语-GBASE南大通用开放创新再领航”为主题的2023 GBASE南大通用媒体交流日活动在GBASE天津总部举行。来自IT168、ITPUB、韩锋频道、自主可控…

Scala 从入门到精通

Scala 从入门到精通 数据类型 pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http:…

Elasticsearch:向量搜索的优势 — 以及 IT 领导者需要它来改善搜索体验的 5 个原因

作者&#xff1a;Evan Castle 与谷歌和亚马逊等高质量搜索引擎的频繁互动提高了客户对快速且相关搜索的期望。 向量搜索&#xff08;也称为语义向量搜索&#xff09;利用深度学习和机器学习来捕获数据的含义和上下文。 向量搜索的好处 向量搜索可以增强公司的搜索体验并带来广…

一次重新加载所有 maven 项目产生的 OOM

1、解决什么问题&#xff1f; 忘了截图了&#xff0c;用文字描述就是由于Reload All Maven Projects导致的 OOM 异常。 2、尝试与解决 2.1、尝试 2.1.1、尝试清理idea缓存&#xff08;无效&#xff09; 2.1.2、重启idea&#xff08;无效&#xff09; 2.1.3、重启电脑&am…