麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Regex > 正文

淺析JavaScript中的正則表達式

2024-09-07 17:40:01
字體:
來源:轉載
供稿:網友

正所謂學習之路不可停止,錯新技術小編我繼續在編程路上,最近在研究正則表達式,借此整理總結下給出這篇淺析JavaScript中的正則表達式,如果大家發現文章有錯誤的地方,請多諒解。有什么更新的建議,歡迎在評論區指出。


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

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

正則表達式中的特殊字符

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

^ 匹配一個輸入或一行的開頭,/^a/匹配"an A",而不匹配"An a"
$ 匹配一個輸入或一行的結尾,/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),匹配這個集合中的任一一個字符(或元字符)
[^xyz] 不匹配這個集合中的任何一個字符
[/b] 匹配一個退格符
/b 匹配一個單詞的邊界
/B 匹配一個單詞的非邊界
/cX 這兒,X是一個控制符,//cM/匹配Ctrl-M
/d 匹配一個字數字符,//d/ = /[0-9]/
/D 匹配一個非字數字符,//D/ = /[^0-9]/
/n 匹配一個換行符
/r 匹配一個回車符
/s 匹配一個空白字符,包括/n,/r,/f,/t,/v等
/S 匹配一個非空白字符,等于/[^/n/f/r/t/v]/
/t 匹配一個制表符
/v 匹配一個重直制表符
/w 匹配一個可以組成單詞的字符(alphanumeric,這是我的意譯,含數字),包括下劃線,如[/w]匹配"$5.98"中的5,等于[a-zA-Z0-9]
/W 匹配一個不可以組成單詞的字符,如[/W]匹配"$5.98"中的$,等于[^a-zA-Z0-9]。



說了這么多了,我們來看一些正則表達式的實際應用的例子:

E-mail地址驗證:
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>");
}

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

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


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

錯新技術小編帶來的這篇淺析JavaScript中的正則表達式,是不是特別的實用呢,更多關于正則表達式的內容,可以多多關注下錯新技術頻道。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 99re热视频这里只精品 | 凹凸成人精品亚洲精品密奴 | 国产日韩一区二区三区在线观看 | 国产午夜精品视频免费不卡69堂 | 国产亚洲精品久久 | 精品久久久久久久久久久αⅴ | 久久华人 | 国产一级毛片高清视频完整版 | 精品91av| 欧美大穴| 激情久久免费视频 | 欧美一级做性受免费大片免费 | 中文字幕精品在线观看 | 亚洲不卡 | www.91视频com | 羞羞网站| 日本xxxx色视频在线观看免费, | 久久久久久久久久亚洲 | 国产精品亚洲精品日韩已方 | 国产噜噜噜噜噜久久久久久久久 | 黄色免费大片 | 欧美成年人在线视频 | 黄色特级片黄色特级片 | 另类亚洲孕妇分娩网址 | 国产精品一区视频 | 成人福利在线观看 | 一级毛片免费大片 | 黄色片网站在线看 | 毛片电影在线看 | 黄色特级一级片 | 一区二区视频在线看 | 亚洲特黄a级毛片在线播放 久久久入口 | 中国的免费的视频 | 红杏亚洲影院一区二区三区 | 动漫孕妇被羞羞视频 | 欧美性受xxxx人人本视频 | 色人阁五月天 | av影片在线观看 | 亚洲片在线观看 | 在线成人免费网站 | 亚洲第一页夜 |