国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

JS——正則表達式(超詳細)

這篇具有很好參考價值的文章主要介紹了JS——正則表達式(超詳細)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

概念

正則表達式是用于匹配字符串中字符組合的模式。在 JavaScript中,正則表達式也是對象。這些模式被用于 RegExp 的 exec 和 test 方法, 以及 String 的 match、matchAll、replace、search 和 split 方法。

創(chuàng)建正則表達式

兩種方法:字面量方式、構(gòu)造函數(shù)方式

//字面量方式,其由包含在斜杠之間的模式組成,如下所示:
var re = /ab+c/;
//構(gòu)造函數(shù)方式,調(diào)用RegExp對象的構(gòu)造函數(shù),如下所示:
var re = new RegExp("ab+c");

正則表達式常用方法

  • 校驗數(shù)據(jù)

test(字符串)

測試字符是否滿足正則表達式規(guī)則,如果測試到有,則返回true;沒有則返回flase
語法:正則表達式.test(字符串) 正則表達式提供的方法

var reg=/[123]/
var str='1'
var result=reg.test(str)
console.log(result)//flase

search(正則表達式)

search() 方法執(zhí)行正則表達式和 String 對象之間的一個搜索匹配。
語法:字符串.search(正則表達式) 字符串提供的方法

var reg=/\d/   //匹配阿拉伯數(shù)字
var str="abcdefg3sgbh"
var res=str.search(reg) 
console.log(res) //7
//驗證方法 找到返回下標 找不到返回-1
//在字符串中找到滿足正則表達式的那一部分
區(qū)別:
.test()方法是正則表達式提供的,.search()是字符串提高的,
.test()方法返回布爾值,search()返回下標
  • 提取數(shù)據(jù)

正則表達式.exec(字符串)

exec() 方法在一個指定字符串中執(zhí)行一個搜索匹配。返回一個結(jié)果數(shù)組或 null。 正則表達式提供的方法

var reg=/\d/  
var str="abcd456efg"
var res=reg.exec(str)
console.log(res)//返回一個數(shù)組,內(nèi)容是4
//字符串中滿足正則表達式的部分提取出來
//遇到滿足條件的就返回,所以只返回4

字符串.match(正則表達式)

match() 方法檢索返回一個字符串匹配正則表達式的結(jié)果。 字符串提供的方法

var reg=/\d/
var str="abcd456efg"
var res=str.match(reg) //字符串中滿足表達式的部分提取出來
console.log(res) 
區(qū)別:
正則表達式.exec(字符串),正則表達式提供的方法
字符串.match(正則表達式) 字符串的方法
相同:
都返回一個數(shù)組,只要匹配到符合規(guī)則的數(shù)據(jù)就返回
  • 替換數(shù)據(jù)

字符串.replace(正則表達式,新的內(nèi)容)

replace() 方法返回一個由替換值(replacement)替換部分或所有的模式(pattern)匹配項后的新字符串。模式可以是一個字符串或者一個正則表達式,替換值可以是一個字符串或者一個每次匹配都要調(diào)用的回調(diào)函數(shù)。如果pattern是字符串,則僅替換第一個匹配項。字符串提供的方法

var reg=/\d/
var str="11123bcd"
var res=str.replace(reg,"a") //將數(shù)字換為a
console.log(res)//a1123bcd 只要匹配到符合規(guī)則的就返回

斷言

JS——正則表達式(超詳細)

范圍類

在[]組成的類內(nèi)部是可以連寫的

let text = 'a1B2d3X4Z5'
let reg=/[a-zA-Z]/
text.replace(reg,'Q')//Q1Q3Q4Q5

字符類

JS——正則表達式(超詳細)

字符類取反

很多時候碰到這么一種情況,即不想匹配某些字符,其他都匹配。此時,可以使用字符類取反——使用元字符^,創(chuàng)建反向類,即不屬于某類的內(nèi)容。

[^abc]表示不是字符a或b或c的內(nèi)容
let reg=/[^abc]/g
let text='a1b2c3d4e5'
console.log(text.replace(reg,'X')) //輸出aXbXcXdXeX

修飾符

在正常情況下,正則匹配到第一個匹配項則停止,并且默認大小寫敏感,如果想修改默認選項,則需要修飾符。

g:global全文搜索

var reg=new RegExp('l');
var a='hello'.replace(reg,'f')
console.log(a)//輸出結(jié)果為:heflo
var reg=new RegExp('l','g');//加上g標簽表示全文搜索
var a='hello'.replace(reg,'f')
console.log(a)//輸出結(jié)果為:heffo (所有的 l 都換成了 f )

i:ignore case 忽略大小寫

var reg=new RegExp('l','g');
var a='helloHELLO'.replace(reg,'f')
console.log(a)//輸出結(jié)果為:heffoHELLO
var reg=new RegExp('l','gi');//加上i標簽表示忽略大小寫
var a='helloHELLO'.replace(reg,'f')
console.log(a)//輸出結(jié)果為:heffoHEffO (大寫和小寫的l都被替換了)

m:multiple lines 多行搜索

var reg=new RegExp('od')
var str='so good\n so good'
var result=str.replace(reg,'hi')
console.log(result)
//結(jié)果為:
 so gohi
 so good
 //只給第一行匹配了
var reg=new RegExp('od','gm')//加上m標簽表示多行匹配
var str='so good\n so good'
var result=str.replace(reg,'hi')
console.log(result)
//結(jié)果為:
 so gohi
 so gohi 

其他標志符

s:允許 . 匹配換行符。
u:使用unicode碼的模式進行匹配。
y:執(zhí)行“粘性(sticky)”搜索,匹配從目標字符串的當前位置開始。

量詞符

JS——正則表達式(超詳細)

貪婪模式

之前說了正則表達式的量詞,但量詞會帶來一個到底匹配哪個的問題
例如:

var str="12345678"
var reg=/\d{3,6}/g
str.replace(reg,'X')  //X78

可以看到結(jié)果是將123456 六個數(shù)字替換成了X,所以我們可以得到,正常模式下,正則表達式會盡可能多的匹配。正常情況下,正則表達式采用貪婪模式,即,盡可能多的匹配。

非貪婪模式

一但成功匹配不再繼續(xù)嘗試,這就是非貪婪模式。
只需要在量詞后加上?即可

var str="12345678"
var reg=/\d{3,6}?/g
str.replace(reg,'X')  //X45678

分組

在使用正則表達式的時候會想要匹配一串字符串連續(xù)出現(xiàn)多次的情況,使用()可以達到分組的功能
例如:(hello){3}
使用符號 | (或)實現(xiàn)選擇的功能
例如:

var str='12341235'
let reg=/123(4|5)/g
//1234 1235二選一

反向引用

將一種格式的時間字符串:yyyy-MM-DD轉(zhuǎn)為MM/DD/yyyy類型格式字符串。
由于年月日是不固定的,沒法直接轉(zhuǎn)換為固定數(shù)值。這時我們可以使用反向引用解決這個問題。
利用$n,n代表著分組的序號,序號是從1開始的。

例如:文章來源地址http://www.zghlxwxcb.cn/news/detail-400792.html

let text='2022-02-23'
let reg=/(\d{4})-(\d{2})-(\d{2})/
let res=text.replace(reg,'$3/$2/$1')//將yyyy-MM-DD轉(zhuǎn)換為MM/DD/yyyy
console.log(res)

到了這里,關于JS——正則表達式(超詳細)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • js之正則表達式

    正則表達式是用于匹配字符串中字符組合的模式。在 JavaScript 中,正則表達式也是對象。這些模式被用于?RegExp?的?exec?和?test?方法,以及?String?的?match、matchAll、replace、search?和?split?方法。 靈活性、邏輯性和功能性非常的強。 可以迅速地用極簡單的方式達到字符串的

    2024年02月09日
    瀏覽(17)
  • JS -- 正則表達式教程

    ECMAScript 通過 RegExp 類型支持正則表達式。 上面兩種是等價的正則表達式 g: 執(zhí)行全局匹配(查找所有匹配,而非在找到第一個匹配后停止) i: 忽略大小寫 m: 多行匹配(第一行末尾結(jié)束后會在下一行連續(xù)匹配) 測試字符是否滿足正則表達式規(guī)則,返回 true / false 找到滿足正則

    2024年01月17日
    瀏覽(23)
  • 【23JavaScript 正則表達式】深入解析JavaScript正則表達式:基礎概念、常用方法和實例詳解,輕松掌握強大的文本模式匹配工具

    正則表達式是一種強大的文本模式匹配工具,用于在字符串中搜索和操作特定的文本模式。在JavaScript中,正則表達式提供了一種靈活的方式來處理字符串操作。 在JavaScript中,可以通過使用字面量表示法或RegExp對象來創(chuàng)建正則表達式。 字面量表示法 RegExp對象 JavaScript中的正則

    2024年02月08日
    瀏覽(28)
  • JS中的正則表達式

    正則就是一種規(guī)則的的表達式,書寫一段規(guī)則,用于匹配一段字符串是否符合規(guī)則 創(chuàng)建正則表達式 創(chuàng)建正則表達式有兩種方式: 1.字面量的形式 2.內(nèi)置構(gòu)造函數(shù)的形式 1.匹配(test) 匹配字符串是否符合正則規(guī)則 符合—true 不符合—false 語法: 正則.test(字符串) 2.捕獲 語法:正則.exe

    2024年02月05日
    瀏覽(16)
  • js 的正則表達式(二)

    js 的正則表達式(二)

    正則表達式分為普通字符和元字符。 普通字符: ????????僅能夠描述它們本身,這些字符稱作普通字符,例如所有的字母和數(shù)字。也就是說普通字符只能夠匹配字符串中與它們相同的字符。 元字符: ????????是一些具有特殊含義的字符,可以極大提高了靈活性和強大

    2024年02月11日
    瀏覽(22)
  • 【JS】一文學會正則表達式

    1.1什么是正則表達式 正則表達式( Regular Expression )是用于匹配字符串中字符組合的模式。在JavaScript中,正則表達式也是對象。 正則表通常被用來檢索、替換那些符合某個模式(規(guī)則)的文本。 例如驗證表單: 用戶名表單只能輸入英文字母、數(shù)字或者下劃線, 昵稱輸入框

    2024年01月17日
    瀏覽(14)
  • JS正則表達式:常用正則手冊/RegExp/正則積累

    JS正則表達式:常用正則手冊/RegExp/正則積累

    一、正則基礎語法 JavaScript 正則表達式 | 菜鳥教程 JS正則表達式語法大全(非常詳細) 二、使用場景 2.1、 校驗中國大陸手機號的正則表達式 正則 解釋 序號 正則 解釋 1 ^1 以數(shù)字 1 開頭 2 [3456789] 第二位可以是 3、4、5、6、7、8、9 中的任意一個 3 d{9} 后面是 9 個數(shù)字 示例代碼

    2024年02月14日
    瀏覽(22)
  • js中的正則表達式(一)

    js中的正則表達式(一)

    目錄 1.什么是正則表達式 2.正則表達式在JavaScript中的使用場景: ?3.正則表達式的語法: 正則表達式(Regular Expression)是用于匹配字符串中字符組合的模式。在JavaScript中,正則表達式也是對象通常用來查找、替換那些符合正則表達式的文本,許多語言都支持正則表達式。 例如

    2024年02月12日
    瀏覽(28)
  • js表單驗證(常用的正則表達式)

    js表單驗證的正則表達式,test() 方法用于檢測一個字符串是否匹配某個模式,如果字符串中含有匹配的文本,則返回 true,否則返回 false。 語法:let reg=/正則表達式主體/修飾符(可選); 方括號用于查找某個范圍內(nèi)的字符: ? ? ? ? [1-10]查找任何從 1?至 10?的數(shù)字,[a-z]查找方括

    2024年01月17日
    瀏覽(19)
  • JS正則表達式只能輸入數(shù)字跟字母

    ###最近需要些js控制一個輸入驗證,搞了好多文字,東湊西并終于匯總了。只要控制不給輸入中文,空格,特殊字符就是 只能輸入數(shù)字跟字母了,反過來實現(xiàn) https://www.jb51.cc/nodejs/993719.html https://www.codenong.com/cs105929828/

    2024年02月12日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包