JavaScript Regex(網摘)

來源:互聯網
上載者:User

Regex文法

轉義符 說明

一般字元

除 .$ ^ { [ ( | ) * + ? / 外,其他字元與自身匹配。

字元 含意
/

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

^ 匹配一個輸入或一行的開頭,/^a/匹配"an A",而不匹配"An a"
$ 匹配一個輸入或一行的結尾,/a$/匹配"An a",而不匹配"an A"
* 匹配前面元字元0次或多次(任意多次),/a*/  將匹配零或多個 a,/ba*/將匹配b,ba,baa,baaa
+ 匹配前面元字元1次或多次,/a+/  將匹配一或多個 a ,/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 匹配一個數字字元,等價於 [0-9]
/D 匹配一個非數字字元,等價於 [^0-9]
/n 匹配一個分行符號
/r 匹配一個斷行符號符
/s 匹配一個空白字元,包括/n,/r,/f,/t,/v等
/S 匹配一個非空白字元,等價於 [^/n/f/r/t/v]
/t 匹配一個定位字元
/v 匹配一個重直定位字元
/w 數字、字母、底線,等價於[a-zA-Z0-9_]
/W 非 /w ,等價於[^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, "&lt;$1&gt;");

 }

 

C#

bool IsValidEmail(string strIn){    // Return true if strIn is in valid e-mail format.    return Regex.IsMatch(strIn, @"^([/w-/.]+)@((/[[0-9]{1,3}/.[0-9]{1,3}/.[0-9]{1,3}/.)|
(([/w-]+/.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(/]?)$ " ) ;
 }

 

Regex對象的屬性及方法   

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

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

Regex對象的方法

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

例子

<script language = "JavaScript">

var myReg = /(/w+)/s(/w+)/; var str  = "John Smith";

var newstr = str.replace(myReg, "$2, $1");

document.write(newstr);

</script>

將輸出"Smith, John"

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.