日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

JS正则表达式的基础用法

發(fā)布時間:2023/12/2 javascript 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JS正则表达式的基础用法 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

RegExp(正則表達式)對象

  正則表達式是一個描述字符模式的對象,可以處理更復雜的字符串。進行匹配替換。

常用的修飾符:
i/m/g

使用方法:
【聲明方法一: new RegExp(value)】
var patt = new RegExp(value);【value】中放入想要檢查的值
var res = patt.test("this is javascript course"); 檢測這段話中是否存在【value】中的值,返回值為boolean類型。

【聲明方法二: var patt = /value/】
var patt = /value/i :i表示不區(qū)分大小寫


【test()函數(shù):檢測字符串中是否存在正則表達式模式對應的匹配,返回類型為布爾類型】
參數(shù):string指定的字符串。
注意:每次執(zhí)行test()函數(shù),都只查找最多一次匹配,找到返回true,否則false。

【方括號用于查找某個范圍內(nèi)的值:/[value]/】
var res =/[abc]/.test("def") 返回值:如果test("value")中的值【存在】于/[abc]/中則返回true,否則false

【^符號表示查找不再該范圍內(nèi)的任何值/[^value/]】
var res =/[^abc]/.test("def") 返回值:如果test("value")中的值【不存在】于/[abc]/中則返回true,否則false


【元字符:它的邏輯是或邏輯,只要一個為真結(jié)果就為真】
【查找單個字符,除了換行和行結(jié)束符:/./】
例子:
res = /./.test("\n"); 返回false
res = /./.test("this is a test\n") 返回true

【查找單詞字符:\w 小寫】
例子:
res = /\w/.test("!#@"); 返回false,因為test("value")中不包含單詞字符【a-zA-Z0-9】

【查找非單詞字符:\W 大寫】
例子:
res = /\W/.test("!#@abc"); 返回true,因為test("value")中包含了非單詞字符,它的邏輯是或邏輯,只要一個為真結(jié)
果就為真。

【查找空白字符:\s 】
例子:
res=/\s/.test('hello world');


【查找非空白字符:\S 】
例子:
res=/\S/.test(" ");

【匹配單詞邊界:\b 單詞邊界指的是一個單詞的左右兩邊,開始和結(jié)束】
例子: 通常不要兩邊都寫
res = /\bValue/.test('good');返回true value在\b后面表示后面的值是否在最左邊
res = /value\b/.test('good');返回true value在\b前面表示前面的值是否在最右邊

【匹配非單詞邊界:\B 單詞邊界指的是一個單詞的左右兩邊,開始和結(jié)束】
例子:value的值在\B的左右兩邊無所謂
res = /o\b/.test('good');返回true 因為o這個值不再test字符串的兩邊

【量詞 -*/?】
【/value : 表示value中的值,匹配至少一次或多次】
例子:
res=/o /.test('google');

【/value*:* 表示value中的值,匹配>=0次】
例子:
res=/o*/.test('google');

【/value?:? 表示value中的值,匹配零次或一次】
例子:
res=/o?/.test('google');

【/^value/: ^ 不加方括號,表示value的值,在test中是否是第一位,是則返回true,否則返回false】
例子:
res=/^k/.test('ikkk'); 返回false,因為k的值不是第一位。

【/value$/:$ 表示匹配任何結(jié)尾為value的字符串】
例子:
res=/i$/i.test('hai'); 返回true 因為$前面的i在test中是最后一位

【/大寫value$/:$ 表示匹配任何結(jié)尾為value的字符串,js中是區(qū)分大小寫的,所以匹配不到】
例子:
res=/I$/i.test('hai'); 返回false 因為I是大寫,test中沒有I,所以返回false,可以通過i來給它變成不區(qū)分大小寫

【/value{x}/:{x} 表示匹配包含X個n的序列的字符串;它也是或邏輯 如果前面的值不匹配,后面的值匹配它一樣為true】
例子:
res=/o(?=w)/.test('helloworld'); 返回true; 表示o后面的值等于w,就相當于/ow/,然后該值在test中是否存在。
res=/o(?!w)/.test('helloworld'); 返回true; ?!w,相當于o的值后面有沒有w,如果沒有返回true,否則返回false,
由于它是或邏輯判斷,第一個o后面有w,但是第二個o后面沒有w,所有它返回true

【/\d/:\d 表示test中的值是否有數(shù)字】
例子:
res=/\d/.test('aajkldsfj8');//[0-9] 返回true,只要test中存在數(shù)字它就返回true。

【/\D/:\D 表示test中的值是否不存在數(shù)字】
例子:
res=/\D/.test('sdfkjllsdfj');//[^0-9] 返回true,只要test中存在數(shù)字它就返回true。


【exec()函數(shù):在目標字符串中執(zhí)行一次正則匹配操作,并將結(jié)果以數(shù)組的形式返回】
參數(shù):string指定的字符串


【通過exec函數(shù)查找value】
res=/Is/i.exec('this is a test');
返回:["is", index: 2, input: "this is a test"]
意思為檢索的值為is,index2是指它開始的位置,input是指被檢索的整個字符串,因為加了i所以不區(qū)分大小寫
因為它返回的是數(shù)組,可以使用res[0]來接收或顯示在頁面上,如果res[value]的大于上面數(shù)組的長度,它返回undefined

【lastIndex屬性:】

定義:當正則表達式中有全局標志g,tet()函數(shù)不是從字符串的開頭開始查找,而是從屬性lastIndex所指定的位置出開始
查找,屬性的默認值是0,所以它第一次仍然是從字符串開頭查找,當找到一個匹配的時候,test()函數(shù)會將lastIndex的值改為本次匹配內(nèi)
容的下一個的索引位置,當兩次執(zhí)行test()函數(shù)的時候,將會從該索引處查找,從而找到下一個匹配。
簡單來說,就是test()執(zhí)行第一次匹配到值的時候,它下一次會從上一次匹配之后繼續(xù)檢索。

【String通過match()函數(shù)也可以使用正則表達式】
例子:
var str='this is a test';
res=str.match(/IS/i); 檢索出str中的IS,i不是不區(qū)分大小寫。
返回值:["is", index: 2, input: "this is a test"]
它返回的值是一個數(shù)組類型,和exec()函數(shù)檢索值一樣。

【全局g】
例子:
var str='this is a test';
res=str.match(/IS/ig); 檢索出str中的IS,i不是不區(qū)分大小寫,g代表全局。
返回值:(2) ["is", "is"]
(2)表示存在多少個is,數(shù)組形式輸出["is","is"]


更多專業(yè)前端知識,請上 【猿2048】www.mk2048.com

總結(jié)

以上是生活随笔為你收集整理的JS正则表达式的基础用法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。