正則表達式判斷詳解

一、基本概念

正則表達式是一種用來匹配文本的字元串模式,是對字元串執行模式匹配的強大工具。它們可以用於搜索、替換和驗證文本。

正則表達式由普通字元和特殊字元(元字元)組成。

元字元列表:
. ^ $ * + ? { } [ ] \ | ( )

其中,常用的元字元有:

. : 匹配除換行符外的任意字元。
^ : 匹配字元串的開頭。
$ : 匹配字元串的結尾。
* : 匹配前面的子表達式零次或多次。
+ : 匹配前面的子表達式一次或多次。
?: 匹配前面的子表達式零次或一次。
{m,n} : 匹配前面的子表達式m到n次。
(...): 標記子表達式的開始和結束位置。
[...] : 用來指定字符集合。
[^...] : 不在指定字符集合內的字元。

二、字元串匹配

字元串匹配是正則表達式最基本的應用,它能夠查找特定的字元或字元串。

以下是一個簡單的字元串匹配的例子:

let str = "Hello world!";
let pattern = /world/;
if (pattern.test(str)) {
  console.log("字元串中包含'world'");
} else {
  console.log("字元串中不包含'world'");
}

輸出結果:

字元串中包含'world'

三、郵箱驗證

郵箱驗證是正則表達式應用的一個經典案例。郵箱是一個特殊的字元串,需要滿足一定的格式規範。

以下是一個簡單的郵箱驗證的例子:

let email = "abc@123.com";
let pattern = /^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/;
if (pattern.test(email)) {
  console.log("郵箱地址合法");
} else {
  console.log("郵箱地址不合法");
}

輸出結果:

郵箱地址合法

四、手機號碼驗證

手機號碼驗證也是正則表達式的一個經典應用。手機號碼需要滿足一定的格式規範。

以下是一個簡單的手機號碼驗證的例子:

let phone = "13912345678";
let pattern = /^1[3-9]\d{9}$/;
if (pattern.test(phone)) {
  console.log("手機號碼合法");
} else {
  console.log("手機號碼不合法");
}

輸出結果:

手機號碼合法

五、HTML標籤匹配

正則表達式也可以用來匹配HTML標籤,從而進行HTML標籤的提取或替換操作。

以下是一個簡單的HTML標籤匹配的例子:

let html = '<div class="container"><p>Hello world!</p></div>';
let pattern = /<(\w+)\b[^>]*>[\s\S]*?<\/\1>/g;
let matches = html.match(pattern);
console.log(matches);

輸出結果:

["<div class="container"><p>Hello world!</p></div>"]

六、內容替換

正則表達式還可以用來進行內容替換,將匹配到的內容替換為指定的內容。

以下是一個簡單的內容替換的例子:

let str = "Hello world!";
let pattern = /world/;
let replacement = "Tom";
let newStr = str.replace(pattern, replacement);
console.log(newStr);

輸出結果:

Hello Tom!

七、結尾符

正則表達式中,$符號表示字元串的結尾位置。

以下是一個$符號的應用的例子:

let str = "Hello world!";
let pattern = /world!$/;
if (pattern.test(str)) {
  console.log("字元串以'world!'結尾");
} else {
  console.log("字元串不以'world!'結尾");
}

輸出結果:

字元串以'world!'結尾

原創文章,作者:JNEHM,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/332724.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
JNEHM的頭像JNEHM
上一篇 2025-01-27 13:34
下一篇 2025-01-27 13:34

相關推薦

  • Python正則表達式search()和match()有什麼區別?

    search()和match()都是Python中的正則表達式函數,它們的作用都是在一個字元串中搜索匹配正則表達式的位置,但它們有著不同的使用場景和返回結果。 一、search()…

    編程 2025-04-29
  • MySQL正則表達式替換

    MySQL正則表達式替換是指通過正則表達式對MySQL中的字元串進行替換。在文本處理方面,正則表達式是一種強大的工具,可以方便快捷地進行字元串處理和匹配。在MySQL中,可以使用正…

    編程 2025-04-27
  • 神經網路代碼詳解

    神經網路作為一種人工智慧技術,被廣泛應用於語音識別、圖像識別、自然語言處理等領域。而神經網路的模型編寫,離不開代碼。本文將從多個方面詳細闡述神經網路模型編寫的代碼技術。 一、神經網…

    編程 2025-04-25
  • Linux sync詳解

    一、sync概述 sync是Linux中一個非常重要的命令,它可以將文件系統緩存中的內容,強制寫入磁碟中。在執行sync之前,所有的文件系統更新將不會立即寫入磁碟,而是先緩存在內存…

    編程 2025-04-25
  • Linux修改文件名命令詳解

    在Linux系統中,修改文件名是一個很常見的操作。Linux提供了多種方式來修改文件名,這篇文章將介紹Linux修改文件名的詳細操作。 一、mv命令 mv命令是Linux下的常用命…

    編程 2025-04-25
  • MPU6050工作原理詳解

    一、什麼是MPU6050 MPU6050是一種六軸慣性感測器,能夠同時測量加速度和角速度。它由三個感測器組成:一個三軸加速度計和一個三軸陀螺儀。這個組合提供了非常精細的姿態解算,其…

    編程 2025-04-25
  • 詳解eclipse設置

    一、安裝與基礎設置 1、下載eclipse並進行安裝。 2、打開eclipse,選擇對應的工作空間路徑。 File -> Switch Workspace -> [選擇…

    編程 2025-04-25
  • git config user.name的詳解

    一、為什麼要使用git config user.name? git是一個非常流行的分散式版本控制系統,很多程序員都會用到它。在使用git commit提交代碼時,需要記錄commi…

    編程 2025-04-25
  • Python輸入輸出詳解

    一、文件讀寫 Python中文件的讀寫操作是必不可少的基本技能之一。讀寫文件分別使用open()函數中的’r’和’w’參數,讀取文件…

    編程 2025-04-25
  • nginx與apache應用開發詳解

    一、概述 nginx和apache都是常見的web伺服器。nginx是一個高性能的反向代理web伺服器,將負載均衡和緩存集成在了一起,可以動靜分離。apache是一個可擴展的web…

    編程 2025-04-25

發表回復

登錄後才能評論