午夜视频在线网站,日韩视频精品在线,中文字幕精品一区二区三区在线,在线播放精品,1024你懂我懂的旧版人,欧美日韩一级黄色片,一区二区三区在线观看视频

分享

JavaScript 學(xué)習(xí)-21.正則表達(dá)式 RegExp 對象

 上海悠悠 2022-05-24 發(fā)布于上海

前言

RegExp:是正則表達(dá)式(regular expression)的簡寫。RegExp 對象用于規(guī)定在文本中檢索的內(nèi)容。

創(chuàng)建 RexExp 對象

創(chuàng)建正則表達(dá)式有兩種方式:

第一種:使用字面量創(chuàng)建 RegExp 對象的語法:

var p = /pattern/attributes;

第二種:使用 new 創(chuàng)建RegExp對象的語法:

var p = new RegExp(pattern, attributes);

參數(shù)釋義:

  • 1.參數(shù)pattern是一個(gè)字符串,指定了正則表達(dá)式的模式或其他正則表達(dá)式。

  • 2.參數(shù)attributes是一個(gè)可選的模式字符串,包含屬性 “g”、”i” 和 “m”,分別用于指定全局匹配、不區(qū)分大小寫的匹配和多行匹配。

attributes參數(shù):

參數(shù)描述
g指定全局匹配
i執(zhí)行不區(qū)分大小寫的匹配。
m多行匹配

RegExp對象屬性

屬性描述
globalRegExp對象是否具有標(biāo)志g
ignoreCaseRegExp對象是否具有標(biāo)志i
multilineRegExp對象是否具有標(biāo)志m
lastIndex標(biāo)識開始匹配下一次字符的位置,返回整數(shù)
source正則表達(dá)式源文本

使用示例

var p = /hello/gi;
console.log(p.global); //true
console.log(p.ignoreCase); //true
console.log(p.multiline); //false
console.log(p.lastIndex); //0
console.log(p.source); //hello

RegExp對象方法

RegExp對象有3個(gè)方法:test()、exec()以及compile()。

方法描述
test()檢索字符串中的指定值,返回值是true或false
exec()檢索字符串中的指定值,返回存有匹配字符串的數(shù)組;如果沒有發(fā)現(xiàn)匹配,則返回null
compile()用于改變正則表達(dá)式,compile()既可以改變檢索模式,也可以添加或刪除第二個(gè)參數(shù)

test()方法

檢索字符串中的指定值,返回值是true或false

var x = 'hello world!'
var y = 'my name is yo yo'
var p = /hello/;
console.log(p.test(x)); //true
console.log(p.test(y)); //false

exec()方法

檢索字符串中的指定值,返回值是存有匹配字符串的數(shù)組;如果沒有發(fā)現(xiàn)匹配,則返回null。

var x = 'hello world!'
var y = 'my name is yo yo'
var p = /hello/;
console.log(p.exec(x)); //['hello', index: 0, input: 'hello world!', groups: undefined]
console.log(p.exec(y)); //null

compile()方法

用于改變正則表達(dá)式,compile()既可以改變檢索模式,也可以添加或刪除第二個(gè)參數(shù)

var x = 'hello world!'
var p = /hello/;
console.log(p.test(x)); // true
// 改變p的匹配方式
p.compile('haha');
console.log(p.test(x)); // false

String對象的正則方法

String對象可以支持的正則相關(guān)方法

方法描述
search檢索與正則表達(dá)式相匹配的值
replace替換與正則表達(dá)式相匹配的值
match找到一個(gè)或多個(gè)正則匹配
split把字符串分割成數(shù)組

search() 方法

search() 方法用于檢索字符串中指定的子字符串,或檢索與正則表達(dá)式相匹配的子字符串。如果沒有找到任何匹配的子串,則返回 -1。
如果找到,則返回與指定查找的字符串或者正則表達(dá)式相匹配的 String 對象起始位置。
使用語法

string.search(searchvalue)

searchvalue 參數(shù)是必須??梢允遣檎业淖址蛘哒齽t表達(dá)式。

使用示例

var x = 'hello world!'
// 可以search 字符串
console.log(x.search('hello')); // 0 返回起始位置
// 也可以search RegExp 對象
console.log(x.search(/hello/)); // 0 返回起始位置
console.log(x.search(/world/)); // 6

replace() 方法

replace() 方法用于在字符串中用一些字符替換另一些字符,或替換一個(gè)與正則表達(dá)式匹配的子串。
語法

string.replace(searchvalue,newvalue)

參數(shù)描述
searchvalue必須。規(guī)定子字符串或要替換的模式的 RegExp 對象。請注意,如果該值是一個(gè)字符串,則將它作為要檢索的直接量文本模式,而不是首先被轉(zhuǎn)換為 RegExp 對象。
newvalue必需。一個(gè)字符串值。規(guī)定了替換文本或生成替換文本的函數(shù)。

使用示例

var x = 'hello world!'

console.log(x.replace(/hello/, "hei")) // hei world!

match() 方法

match() 方法可在字符串內(nèi)檢索指定的值,或找到一個(gè)或多個(gè)正則表達(dá)式的匹配。

注意:match() 方法將檢索字符串 String Object,以找到一個(gè)或多個(gè)與 regexp 匹配的文本。
這個(gè)方法的行為在很大程度上有賴于 regexp 是否具有標(biāo)志 g。如果 regexp 沒有標(biāo)志 g,那么 match() 方法就只能在 stringObject 中執(zhí)行一次匹配。
如果沒有找到任何匹配的文本, match() 將返回 null。否則,它將返回一個(gè)數(shù)組,其中存放了與它找到的匹配文本有關(guān)的信息。

語法

string.match(regexp)

參數(shù) regexp 必需。規(guī)定要匹配的模式的 RegExp 對象。如果該參數(shù)不是 RegExp 對象,則需要首先把它傳遞給 RegExp 構(gòu)造函數(shù),將其轉(zhuǎn)換為 RegExp 對象。

返回值:存放匹配結(jié)果的數(shù)組。該數(shù)組的內(nèi)容依賴于 regexp 是否具有全局標(biāo)志 g。如果沒找到匹配結(jié)果返回 null 。

使用示例:
不區(qū)分大小寫,查找字符串中的字符o,返回?cái)?shù)組

var x = 'hello world!'
console.log(x.match(/o/i)) //['o', index: 4, input: 'hello world!', groups: undefined]

帶有全局標(biāo)志g時(shí)

var x = 'hello world!'
console.log(x.match(/o/gi)) // ['o', 'o']
console.log(x.match(/hello/gi)) // ['hello']

沒找到返回null

var x = 'hello world!'
console.log(x.match(/xx/gi)) // null

split() 方法

split() 方法用于把一個(gè)字符串分割成字符串?dāng)?shù)組。

語法

string.split(separator,limit)

參數(shù):

  • separator 可選,可以是一個(gè)字符串或者正則表達(dá)式

  • limit 可選,該參數(shù)可指定返回的數(shù)組的最大長度

使用示例

var x = 'hello world!my name is yoyo'
// 匹配空格或!表達(dá)式 /[' '|\!]/
console.log(x.split(/[' '|\!]/)) // ['hello', 'world', 'my', 'name', 'is', 'yoyo']

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多