19.正則表達式

19.1什么是正則表達式

●正則表達式( Regular Expression) 是用于匹配字符串中字符組合的模式。在JavaScript中, 正則表達式也是對象
●通常用來查找、替換那些符合正則表達式的文本,許多語言都支持正則表達式

●正則表達式在JavaScript中的使用場景:
?例如驗證表單:用戶名表單只能輸入英文字母、數字或者下劃線,昵稱輸入框中可以輸入中文(匹配
?比如用戶名:/ ^[a-z0-9_ -]{3,16}$/
?過濾掉頁面內容中的一-些敏感詞(替換),或從字符串中獲取我們想要的特定部分(提取)等。

19.2語法

JavaScript中定義正則表達式的語法有兩種,比較簡單的一種方法:

1.定義正則表達式語法:

const變量名= /表達式/

?其中/ /是正則表達式字面量
●比如:
const reg = /前端/

2.判斷是否有符合規則的字符串:
test() 方法 用來查看正則表達式與指定的字符串是否匹配
●語法:

reg.test(被檢測的字符串)

●比如:
在這里插入圖片描述
●如果正則表達式與指定的字符串匹配,返回true,否則false

3.檢索(查找)符合規則的字符串:
exec() 方法 在一個指定字符串中執行一個搜索匹配
●語法:

regObj.exec(被檢測字符串)

●比如:
在這里插入圖片描述
●如果匹配成功,exec() 方法返回一個數組,否則返回null

19.3元字符

●普通字符:
大多數的字符僅能夠描述它們本身,這些字符稱作普通字符,例如所有的字母和數字。
也就是說普通字符只能夠匹配字符串中與它們相同的字符。
●元字符(特殊字符)
是一些具有特殊含義的字符,可以極大提高靈活性和強大的匹配功能
?比如,規定用戶只能輸入英文26個英文字母,普通字符的話abcdefghijklm…
?但是換成元字符寫法: [a-z]
●參考文檔:
MDN:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Regular_Expressions
正則測試工具: http://tool.oschina.net/regex

1.邊界符
●正則表達式中的邊界符 (位置符) 用來提示字符所處的位置,主要有兩個字符
在這里插入圖片描述
如果^和 $ 在一起,表示必須是精確匹配。
【例如】

console.log(/^哈/.test('哈')) //true
console.log(/^哈/.test('2哈')) //false
console.log(/^哈$/.test('哈')) //true
console.log(/^哈$/.test('哈哈')) //false

2.量詞
量詞用來設定某個模式出現的次數
在這里插入圖片描述
注意:逗號左右兩側千萬不要出現空格

3.字符類:
(1) [ ] 匹配字符集合
●后面的字符串只要包含abc中任意一個字符,都返回true
在這里插入圖片描述
在這里插入圖片描述
(2) [ ] 里面加上-連字符
●使用連字符表示一個范圍

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號從10000開始)

(3) [ ] 里面加上^取反符號
●比如:
?[^a-z] 匹配除了小寫字母以外的字符
?注意要寫到中括號里面

(4) . 匹配除換行符之外的任何單個字符

(5)預定義:指的是某些常見模式的簡寫方式。
在這里插入圖片描述

19.4修飾符

●修飾符約束正則執行的某些細節行為,如是否區分大小寫、是否支持多行匹配等
●語法:
/表達式/修飾符
?i是單詞ignore的縮寫,正則匹配時字母不區分大小寫
?g是單詞global的縮寫,匹配所有滿足正則表達式的結果

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

●替換replace替換
●語法:

字符串.replace(/正則表達式/,'替換的文本')

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/37167.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/37167.shtml
英文地址,請注明出處:http://en.pswp.cn/news/37167.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

什么是MCU芯片?分類有哪些?與MPU、SoC的區別

1. MCU芯片 MCU,全稱為微控制單元,可以看作是CPU頻率和規格的縮減。它整合了計數器、內存、USB和A/D轉換等功能,形成了一個芯片級的計算機。MCU的重要性僅次于CPU,廣泛應用于各種應用場景,如校園卡、身份證、家用電器…

《golang設計模式》第二部分·結構型模式-02-橋接模式(Bridge)

文章目錄 1. 概念1.1 角色1.2 類圖 2. 代碼示例2.1 設計2.1 代碼2.2 類圖 1. 概念 客戶端調用橋接接口實現原有功能和擴展功能的組合 1.1 角色 Implementor(實施者): 具體實施者的抽象,可以是一個接口。 Concrete Implementor&…

8.15號經典模型復習筆記

文章目錄 Deep Residual Learning for Image Recognition(CVPR2016)方法 Densely Connected Convolutional Networks(CVPR2017)方法 EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks(ICML2019)方法 Re…

使用維納過濾器消除駕駛艙噪音(Matlab代碼實現)

💥💥💞💞歡迎來到本博客????💥💥 🏆博主優勢:🌞🌞🌞博客內容盡量做到思維縝密,邏輯清晰,為了方便讀者。 ??座右銘&a…

信息論、推理和機器學習算法之間交叉的經典例子

信息論、推理和機器學習算法之間交叉的經典例子: 熵和信息增益在決策樹學習中的應用。信息增益利用熵的概念來評估特征的分類能力,從而指導決策樹的增長。 交叉熵在神經網絡訓練中的廣泛使用。它結合信息論與最大似然推斷,用于度量預測分布與真實分布之間的距離。 變分推斷常被…

Tomcat的多實例和動靜分離

目錄 一、多實例 二、 nginxtomcat的負載均衡和動靜分離 三、Tomcat 客戶端->四層代理->七層代理->tomcat服務器 實驗: 問題總結: tomcat日志文件:/usr/local/tomcat/logs/catalina.out 一、多實例 在一臺服務器上有多個tomc…

微信小程序(原生)和uniapp預覽電子文件doc/pdf/ppt/excel等

微信小程序原生預覽文件 function previewFile(value) {const fileExtName ${value.ext};const randFile new Date().getTime() fileExtName;uni.showLoading({title: 加載中...})wx.downloadFile({url: value.url, // 文件的本身urlfilePath: wx.env.USER_DATA_PATH / r…

ES使用心得

客戶端 Transport Client已經快要廢棄了,官方推薦使用High Level REST Client。 常用命令 啟停 systemctl start elasticsearch systemctl stop elasticsearch節點狀態 curl http://myservice1:9200/_cat/nodes?vip heap.percent ram.percent cpu l…

解壓版 MySQL 數據庫的安裝與配置

目錄 1 下載2 安裝3 配置3.1 添加環境變量3.2 新建配置文件3.3 初始化MySQL3.4 注冊MySQL服務3.5 啟動MySQL服務3.6 修改默認賬戶密碼 4 登錄5 卸載 安裝環境:Win10 64位 軟件版本:MySQL 5.7.24 解壓版 1 下載 點擊鏈接 進入如下界面 ??注意: 我們一般不會選擇最新…

防火墻筆記

什么是防火墻 在計算機網絡中是指設置在可信任的內部網絡和不可信任的外部網絡之間的屏障,通過強化邊界控制保障內容安全,同時不妨礙內部對外部的訪問。 20世紀80年代,最早的防火墻幾乎與路由器同時出現,第一代防火墻主要基于包過…

RocketMQ 5.1.0 源碼詳解 | Producer 發送流程

文章目錄 初始化DefaultMQProducer實例發送流程DefaultMQProducer#sendDefaultMQProducerImpl#sendMQClientInstance#updateTopicRouteInfoFromNameServer使用特定 topic 獲取路由信息使用默認 topic 獲取路由信息 DefaultMQProducerImpl#sendDefaultImpl發送流程總結 初始化De…

記一次練習(內容待完善)

記錄最近一次爬蟲和數據可視化練習 0、數據獲取 import pandas as pdyear [2018,2019,2020,2021,2022] header {"User-Agent":"Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Mobile S…

31 | 獨角獸企業數據分析

獨角獸企業:是投資行業尤其是風險投資業的術語,一般指成立時間不超過10年、估值超過10億美元的未上市創業公司。 項目目的: 1.通過對獨角獸企業進行全面地分析(地域,投資方,年份,行業等),便于做商業上的戰略決策 項目數據源介紹 1.數據源:本項目采用的數據源是近…

2023年大廠前端面試題匯總

一、58同城前端面試題27道 1. css盒模型 2. css畫三角形 3. 盒子水平垂直居中(所有方式) 4. 重繪、重排 重繪就是重新繪制(repaint):是在一個元素的外觀被改變所觸發的瀏覽器行為,瀏覽器會根據元素的新屬性…

文檔控件DevExpress Office File API v23.1新版亮點 - 支持.NET MAUI

DevExpress Office File API是一個專為C#, VB.NET 和 ASP.NET等開發人員提供的非可視化.NET庫。有了這個庫,不用安裝Microsoft Office,就可以完全自動處理Excel、Word等文檔。開發人員使用一個非常易于操作的API就可以生成XLS, XLSx, DOC, DOCx, RTF, CS…

Spring Security自定義登陸界面和密碼驗證邏輯

maven依賴 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId> </dependency> 創建配置文件處理跳轉攔截等功能以及密碼比對功能 package com.example.demo2.demos.web1;…

Shell 變量

Shell 變量 定義變量時&#xff0c;變量名不加美元符號&#xff08;$&#xff0c;PHP語言中變量需要&#xff09;&#xff0c;如&#xff1a; your_name"runoob.com" 注意&#xff0c;變量名和等號之間不能有空格&#xff0c;這可能和你熟悉的所有編程語言都不一樣…

python如何實現1ms內觸發兩個接口請求

在Python中&#xff0c;可以通過多線程或者協程來實現1ms內觸發兩個接口請求。以下是兩種方法的示例代碼&#xff1a; 1.多線程實現&#xff1a; import threading import requestsdef send_request(url):response requests.get(url)print(response.text)# 創建兩個線程&…

nginx一般輪詢、加權輪詢、ip_hash等負載均衡模式配置介紹

一.負載均衡含義簡介 二.nginx負載均衡配置方式 準備三臺設備&#xff1a; 2.190均衡服務器&#xff0c;2.191web服務器1&#xff0c;2.160web服務器2&#xff0c;三臺設備均安裝nginx&#xff0c;兩臺web服務器均有網頁內容 1.一般輪詢負載均衡 &#xff08;1&#xff09…

ARTS 挑戰打卡的第9天 --- 如何知道一個數是否為2的若干次冪(Algorithm)

前言 &#xff08;1&#xff09;今天看到一個有意思的問題&#xff0c;如何判斷一個數字是否為2的若干次冪。這個問題并不難&#xff0c;但是對于我們的C語言功底還是有一點點的考驗的。 &#xff08;2&#xff09;希望各位可以先自行思考&#xff0c;實在想不出來再看后面的講…