欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaScript中的正則表達(dá)式解析

 更新時(shí)間:2006年07月29日 00:00:00   投稿:mdxy-dxy  
JavaScript中的正則表達(dá)式解析

JavaScript中的正則表達(dá)式解析
                         
正則表達(dá)式(regular expression)對象包含一個(gè)正則表達(dá)式模式(pattern)。它具有用正則表達(dá)式模式去匹配或代替一個(gè)字符串(string)特定字符(或字符集合)的屬性(properties)和方法(methods)。要為一個(gè)單獨(dú)的正則表達(dá)式添加屬性,可以使用正則表達(dá)式構(gòu)造函數(shù)(constructor function),無論何時(shí)被調(diào)用的預(yù)設(shè)置的正則表達(dá)式擁有靜態(tài)的屬性(the predefined RegExp object has static properties that are set whenever any regular expression is used, 我不知道我翻得對不對,將原文列出,請自行翻譯)。

創(chuàng)建:
一個(gè)文本格式或正則表達(dá)式構(gòu)造函數(shù)
文本格式: /pattern/flags
正則表達(dá)式構(gòu)造函數(shù): new RegExp("pattern"[,"flags"]);
參數(shù)說明:
pattern -- 一個(gè)正則表達(dá)式文本
flags -- 如果存在,將是以下值:
g: 全局匹配
i: 忽略大小寫
gi: 以上組合
[注意] 文本格式的參數(shù)不用引號(hào),而在用構(gòu)造函數(shù)時(shí)的參數(shù)需要引號(hào)。如:/ab+c/i new RegExp("ab+c","i")是實(shí)現(xiàn)一樣的功能。
在構(gòu)造函數(shù)中,一些特殊字符需要進(jìn)行轉(zhuǎn)意(在特殊字符前加"\")。如:re = new RegExp("\\w+")

正則表達(dá)式中的特殊字符

字符 含意
\ 做為轉(zhuǎn)意,即通常在"\"后面的字符不按原來意義解釋,如/b/匹配字符"b",當(dāng)b前面加了反斜桿后/\b/,轉(zhuǎn)意為匹配一個(gè)單詞的邊界。
-或-
對正則表達(dá)式功能字符的還原,如"*"匹配它前面元字符0次或多次,/a*/將匹配a,aa,aaa,加了"\"后,/a\*/將只匹配"a*"。

^ 匹配一個(gè)輸入或一行的開頭,/^a/匹配"an A",而不匹配"An a"
$ 匹配一個(gè)輸入或一行的結(jié)尾,/a$/匹配"An a",而不匹配"an A"
* 匹配前面元字符0次或多次,/ba*/將匹配b,ba,baa,baaa
+ 匹配前面元字符1次或多次,/ba*/將匹配ba,baa,baaa
? 匹配前面元字符0次或1次,/ba*/將匹配b,ba
(x) 匹配x保存x在名為$1...$9的變量中
x|y 匹配x或y
{n} 精確匹配n次
{n,} 匹配n次以上
{n,m} 匹配n-m次
[xyz] 字符集(character set),匹配這個(gè)集合中的任一一個(gè)字符(或元字符)
[^xyz] 不匹配這個(gè)集合中的任何一個(gè)字符
[\b] 匹配一個(gè)退格符
\b 匹配一個(gè)單詞的邊界
\B 匹配一個(gè)單詞的非邊界
\cX 這兒,X是一個(gè)控制符,/\cM/匹配Ctrl-M
\d 匹配一個(gè)字?jǐn)?shù)字符,/\d/ = /[0-9]/
\D 匹配一個(gè)非字?jǐn)?shù)字符,/\D/ = /[^0-9]/
\n 匹配一個(gè)換行符
\r 匹配一個(gè)回車符
\s 匹配一個(gè)空白字符,包括\n,\r,\f,\t,\v等
\S 匹配一個(gè)非空白字符,等于/[^\n\f\r\t\v]/
\t 匹配一個(gè)制表符
\v 匹配一個(gè)重直制表符
\w 匹配一個(gè)可以組成單詞的字符(alphanumeric,這是我的意譯,含數(shù)字),包括下劃線,如[\w]匹配"$5.98"中的5,等于[a-zA-Z0-9]
\W 匹配一個(gè)不可以組成單詞的字符,如[\W]匹配"$5.98"中的$,等于[^a-zA-Z0-9]。



說了這么多了,我們來看一些正則表達(dá)式的實(shí)際應(yīng)用的例子:

E-mail地址驗(yàn)證:
function test_email(strEmail) {
var myReg = /^[_a-z0-9]+@([_a-z0-9]+\.)+[a-z0-9]{2,3}$/;
if(myReg.test(strEmail)) return true;
return false;
}
HTML代碼的屏蔽
function mask_HTMLCode(strInput) {
var myReg = /<(\w+)>/;
return strInput.replace(myReg, "<$1>");
}

正則表達(dá)式對象的屬性及方法
  預(yù)定義的正則表達(dá)式擁有有以下靜態(tài)屬性:input, multiline, lastMatch, lastParen, leftContext, rightContext和$1到$9。
其中input和multiline可以預(yù)設(shè)置。其他屬性的值在執(zhí)行過exec或test方法后被根據(jù)不同條件賦以不同的值。
許多屬性同時(shí)擁有長和短(perl風(fēng)格)的兩個(gè)名字,并且,這兩個(gè)名字指向同一個(gè)值。(JavaScript模擬perl的正則表達(dá)式)

正則表達(dá)式對象的屬性 屬性 含義
$1...$9 如果它(們)存在,是匹配到的子串
$_ 參見input
$* 參見multiline
$& 參見lastMatch
$+ 參見lastParen
$` 參見leftContext
$’          參見rightContext
constructor    創(chuàng)建一個(gè)對象的一個(gè)特殊的函數(shù)原型
global       是否在整個(gè)串中匹配(bool型)
ignoreCase     匹配時(shí)是否忽略大小寫(bool型)
input        被匹配的串
lastIndex     最后一次匹配的索引
lastParen     最后一個(gè)括號(hào)括起來的子串
leftContext    最近一次匹配以左的子串
multiline     是否進(jìn)行多行匹配(bool型)
prototype     允許附加屬性給對象
rightContext    最近一次匹配以右的子串
source       正則表達(dá)式模式
lastIndex     最后一次匹配的索引


正則表達(dá)式對象的方法
方法 含義
compile      正則表達(dá)式比較
exec        執(zhí)行查找
test        進(jìn)行匹配
toSource      返回特定對象的定義(literal representing),其值可用來創(chuàng)建一個(gè)新的對象。重載Object.toSource方法得到的。
toString      返回特定對象的串。重載Object.toString方法得到的。
valueOf      返回特定對象的原始值。重載Object.valueOf方法得到

相關(guān)文章

  • 正則表達(dá)式單行、多行模式簡介(使用說明)

    正則表達(dá)式單行、多行模式簡介(使用說明)

    我們今天繼續(xù)討論下,它的單行,多行模式使用,及容易出現(xiàn)錯(cuò)誤地方。單行,多行模式,都是正則表達(dá)式的模式修飾符里面出現(xiàn)的參數(shù)
    2016-06-06
  • 正則表達(dá)式中兩個(gè)反斜杠的匹配規(guī)則詳解

    正則表達(dá)式中兩個(gè)反斜杠的匹配規(guī)則詳解

    這篇文章主要介紹了正則表達(dá)式中兩個(gè)反斜杠的匹配規(guī)則,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11
  • shell腳本中的正則表達(dá)式詳解

    shell腳本中的正則表達(dá)式詳解

    正則表達(dá)式是通過一些特殊字符的排序,用以刪除、查找、替換一行或者多行文字字符串的程序,本文給大家介紹shell腳本正則表達(dá)式的相關(guān)知識(shí),感興趣的朋友一起看看吧
    2021-07-07
  • 正則表達(dá)式 匹配至少有一個(gè)非空白字符并且不超過指定長度

    正則表達(dá)式 匹配至少有一個(gè)非空白字符并且不超過指定長度

    最近需要用到一個(gè)驗(yàn)證,規(guī)則為:至少有一個(gè)非空白字符并且不超過指定長度,想用正則表達(dá)式來處理,上網(wǎng)搜了一下,發(fā)現(xiàn)其他人也有和我一樣的需求,并且有高手給了幾個(gè)很精彩的解決方案,現(xiàn)將網(wǎng)上的解決方案整理一下,以備其他有相同需求的人參考
    2011-11-11
  • 利用正則表達(dá)式匹配浮點(diǎn)型數(shù)據(jù)

    利用正則表達(dá)式匹配浮點(diǎn)型數(shù)據(jù)

    正則表達(dá)式用于字符串處理、表單驗(yàn)證、日志數(shù)據(jù)分析等場合,實(shí)用高效,下面這篇文章主要給大家介紹了關(guān)于如何利用正則表達(dá)式匹配浮點(diǎn)型數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下
    2022-05-05
  • ExtJS4的文本框(textField)使用正則表達(dá)式進(jìn)行驗(yàn)證(Regex)的方法

    ExtJS4的文本框(textField)使用正則表達(dá)式進(jìn)行驗(yàn)證(Regex)的方法

    Extjs的Regex的驗(yàn)證屬性分兩種情況,一種是只有紅色提示框;另一種是在提示框邊會(huì)出現(xiàn)一個(gè)類似批注的提示信息,不過在頁面加載時(shí)要加上Ext.QuickTips.init();提示框才能正常顯示出來
    2016-02-02
  • 正則表達(dá)式基本語法詳解

    正則表達(dá)式基本語法詳解

    本文給給大家介紹正則表達(dá)式的基本語法,需要的朋友可以參考下
    2015-10-10
  • JS正則中的match與exec使用說明

    JS正則中的match與exec使用說明

    match() 方法將檢索目標(biāo)字符串,以找到一個(gè)或多個(gè)與 正則表達(dá)式regexp 匹配的文本。
    2011-08-08
  • 8個(gè)你應(yīng)該了解的正則表達(dá)式提高你的工作效率

    8個(gè)你應(yīng)該了解的正則表達(dá)式提高你的工作效率

    正則表達(dá)式也可以被當(dāng)作是一門語言,入門時(shí)可能很吃力,不過一旦學(xué)會(huì)了就方便很多,在處理一些比較復(fù)雜的替換時(shí),正則表達(dá)式就會(huì)發(fā)揮它的真正作用,本文整理了一些常用的正則,感興趣的朋友可以了解下,或許對你有所幫助
    2013-01-01
  • 正則表達(dá)式問號(hào)的四種用法詳解

    正則表達(dá)式問號(hào)的四種用法詳解

    這篇文章主要介紹了正則表達(dá)式問號(hào)的四種用法詳解的相關(guān)資料,需要的朋友可以參考下
    2015-09-09

最新評論