JavaScript菜鳥(niǎo)教程

JavaScript 對(duì)象

JavaScript 函數(shù)

JS HTML DOM

JS 瀏覽器BOM

AJAX 菜鳥(niǎo)教程

JavaScript 參考手冊(cè)

JavaScript 正則表達(dá)式(RegExp)

正則表達(dá)式通常稱(chēng)為“regex”或“ RegExp”,是用于匹配字符串中字符組合的模式。

正則表達(dá)式是當(dāng)今可用的功能最強(qiáng)大的工具之一,可以有效地處理和操作文本。

正則表達(dá)式可用于執(zhí)行所有類(lèi)型的文本搜索文本替換操作。

正則表達(dá)式可以是單個(gè)字符,也可以是更復(fù)雜的模式。

在JavaScript中,正則表達(dá)式也是對(duì)象。

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

您可以通過(guò)以下兩種方式之一創(chuàng)建正則表達(dá)式:

使用正則表達(dá)式文字,由包含在斜線(xiàn)之間的模式組成,如下所示:

  var regex = /nhooo/g

或調(diào)用RegExp對(duì)象的構(gòu)造函數(shù),如下所示:

  var regex = new RegExp("nhooo", "g");

示例說(shuō)明:

  • nhooo是一種模式(用于搜索)

  • g是修飾符(執(zhí)行全局匹配)

使用構(gòu)造函數(shù)可以提供正則表達(dá)式的運(yùn)行時(shí)編譯。

當(dāng)您不知道模式并從其他來(lái)源(例如用戶(hù)輸入)獲取模式時(shí),請(qǐng)使用構(gòu)造函數(shù)。

注:文本語(yǔ)法使用正斜杠(/pattern/)來(lái)包裝正則表達(dá)式模式,而構(gòu)造函數(shù)語(yǔ)法使用引號(hào)(“pattern”)。

使用字符串方法

在JavaScript中,正則表達(dá)式經(jīng)常使用的三個(gè)字符串方法:search(),replace()match()。

search()方法使用表達(dá)式搜索匹配項(xiàng),然后返回匹配項(xiàng)的位置。

replace()方法返回修改后的字符串,其中將替換模式。

match()方法在字符串中搜索與正則表達(dá)式的匹配項(xiàng),然后將匹配項(xiàng)作為Array對(duì)象返回。

search()方法

search()方法執(zhí)行搜索以查找正則表達(dá)式和字符串之間的匹配項(xiàng)。

如果找到匹配項(xiàng),它將返回第一個(gè)匹配項(xiàng)的位置,如果找不到匹配項(xiàng),則將返回-1

var str = 'The question is to be, or not to be, that is to be.';
var pos = str.search('to be');
測(cè)試看看?/?

以下示例演示了帶i修飾符的正則表達(dá)式的使用(忽略大小寫(xiě)):

var str = 'The question is TO BE, or not to be, that is to be.';
var pos = str.search(/to be/i);
測(cè)試看看?/?

正則表達(dá)式可以使您的搜索功能更加強(qiáng)大(例如,不區(qū)分大小寫(xiě))。

replace()方法

replace()方法返回一個(gè)新字符串,該字符串具有部分或全部模式匹配項(xiàng),并由替換項(xiàng)替換。

第一個(gè)參數(shù)將是要找到的值,第二個(gè)參數(shù)將是要替換為的值。

var str1 = 'The question is to be, or not to be, that is to be.';
var str2 = str1.replace('to be', 'ZZZ');
測(cè)試看看?/?

默認(rèn)情況下,replace()方法僅替換第一個(gè)匹配項(xiàng)。

要替換所有出現(xiàn)的內(nèi)容,請(qǐng)使用帶有g修飾符的正則表達(dá)式(全局搜索):

var str1 = 'The question is to be, or not to be, that is to be.';
var str2 = str1.replace(/to be/g, 'ZZZ');
測(cè)試看看?/?

要替換不區(qū)分大小寫(xiě)的代碼,請(qǐng)使用帶有i修飾符的正則表達(dá)式(忽略大小寫(xiě)):

var str1 = 'The question is TO BE, or not to be, that is to be.';
var str2 = str1.replace(/to be/gi, 'ZZZ');
測(cè)試看看?/?

match()方法

match()方法在字符串中搜索與正則表達(dá)式的匹配項(xiàng),然后將匹配項(xiàng)作為Array對(duì)象返回。

var str = 'POLLUTION: Air Pollution is introduction of chemicals to the atmosphere';
var reg = str.match(/ion/g);
測(cè)試看看?/?

正則表達(dá)式修飾符

修飾符用于執(zhí)行全局搜索,區(qū)分大小寫(xiě)和多行搜索:

修飾符描述示例
g執(zhí)行全局匹配,即查找所有匹配,而不是在第一個(gè)匹配后停止測(cè)試一下
i執(zhí)行不區(qū)分大小寫(xiě)的匹配測(cè)試一下
m執(zhí)行多行匹配測(cè)試一下

正則表達(dá)式模式

正則表達(dá)式模式包括字母,數(shù)字,標(biāo)點(diǎn)符號(hào)等的使用,以及一組特殊的正則表達(dá)式字符。

方括號(hào)[]用于查找一系列字符:

表達(dá)式描述示例
[abc]在方括號(hào)之間找到任何字符測(cè)試一下
[0-9]查找方括號(hào)之間的任何字符(任意數(shù)字)測(cè)試一下
(x|y)查找指定的任何代替方案測(cè)試一下

元字符是一個(gè)簡(jiǎn)單的字母字符,前面有一個(gè)反斜杠,它的作用是給這個(gè)組合一個(gè)特殊的意義:

元字符描述示例
\d找一個(gè)數(shù)字測(cè)試一下
\W查找非文字字符測(cè)試一下
\s查找空格字符測(cè)試一下

量詞指定頻率或方括號(hào)內(nèi)的字符序列的位置:

表達(dá)式描述示例
z+匹配任何包含至少一個(gè)z的字符串測(cè)試一下
z*匹配任何包含零個(gè)或多個(gè)z的字符串測(cè)試一下
z?匹配任何包含零或一出現(xiàn)z的字符串測(cè)試一下

使用RegExp方法

在JavaScript中,RegExp對(duì)象是具有預(yù)定義屬性和方法的正則表達(dá)式對(duì)象。

test()方法在字符串中搜索模式,并根據(jù)結(jié)果返回true或false。

exec()方法在字符串中搜索模式,然后將找到的文本作為對(duì)象返回。

test()方法

test()方法執(zhí)行對(duì)指定字符串中的匹配項(xiàng)的搜索。

如果找到匹配項(xiàng),則返回true;否則,返回false。

使用test()時(shí),你想知道的模式是否在字符串中找到。

var str = "www.soo66.com";
var regex = new RegExp("h");
var ans = regex.test(str);
測(cè)試看看?/?

test()返回一個(gè)布爾值,不同的是exec()它返回一個(gè)字符串。

exec()方法

exec()方法執(zhí)行對(duì)指定字符串中的匹配項(xiàng)的搜索。

如果找到匹配項(xiàng),則此方法返回匹配的文本;否則,返回null。

var str = "www.soo66.com";
var regex = new RegExp("h");
var ans = regex.exec(str);
測(cè)試看看?/?

使用正則表達(dá)式驗(yàn)證輸入

計(jì)算字符串中的元音數(shù)量:

在輸入字段中輸入一些文本以顯示元音字母數(shù)量:

輸入的元音字母?jìng)€(gè)數(shù):

運(yùn)行代碼

完整的RegExp參考

有關(guān)完整的屬性和方法參考,請(qǐng)?jiān)L問(wèn)我們的JavaScript RegExp參考。

參考部分包含所有RegExp屬性和方法的描述和示例。

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清