程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> javascript的正則表達式匹配

javascript的正則表達式匹配

編輯:.NET實例教程

常用的正則表達式

匹配中文字符的正則表達式: [\u4e00-\u9fa5]
匹配雙字節字符(包括漢字在內):[^\x00-\xff]
匹配空行的正則表達式:\n[\s| ]*\r
匹配Html標記的正則表達式:/<(.*)>.*<\/\1>|<(.*) \/>/
匹配首尾空格的正則表達式:(^\s*)|(\s*$)

匹配Email地址的正則表達式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
匹配網址URL的正則表達式:http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?

 

3.1.2非打印字符
非打印字符也是普通字符,單獨列出來便於參考。

非打印字符參考(有錯大家矯正,JS手冊都有)
\cx
匹配由x指明的控制字符。例如, \cM 匹配一個 Control-M 或回車符。x 的值必須為 A-Z 或 a-z 之一。否則,將 c 視為一個原義的 ''c'' 字符。

\f
匹配一個換頁符。等價於 \x0c 和 \cL。

\n
匹配一個換行符。等價於 \x0a 和 \cJ。

\r
匹配一個回車符。等價於 \x0d 和 \cM。

\s
匹配任何空白字符,包括空格、制表符、換頁符等等。等價於 [ \f\n\r\t\v]。

\S
匹配任何非空白字符。等價於 [^ \f\n\r\t\v]。

\t
匹配一個制表符。等價於 \x09 和 \cI。

\v
匹配一個垂直制表符。等價於 \x0b 和 \cK。

Regex中可以使用非打印字符。\t會匹配一個tab字符(ASC||),\r 會匹配一個回車(0x0D),\n 會匹配一個換行符(0x0A)。應該注意的是:Windows使用\r\n表示一行的結束,而UNIX使用\n 。

同樣,我們可以在Regex中使用16進制的ASCⅡ碼或者ANSI標准碼。在拉丁語中,版權符號的代碼是0xA9,所以我們也可以這樣來匹配版權符號 \xA9 。另外一個匹配tab的寫法是:\x09 。但是注意,第一位的“0”必須去掉。


特殊字符
特殊字符也叫做元字符,保留字符(Metacharactor),在Regex中表示特殊的意義,大部分的意思在不同的上下文中的意義是不同的,這裡只列出最普遍的意義。

特殊字符共有11個:
$
匹配輸入字符串的結尾位置。如果設置了 RegExp 對象的 Multiline 屬性,則 $ 也匹配 ''\n'' 或 ''\r''。要匹配 $ 字符本身,請使用 \$。

( )
標記一個子表達式的開始和結束位置。子表達式可以獲取供以後使用。要匹配這些字符,請使用 \( 和 \)。

*
匹配前面的子表達式零次或多次。要匹配 * 字符,請使用 \*。

+
匹配前面的子表達式一次或多次。要匹配 + 字符,請使用 \+。

.
匹配除換行符 \n之外的任何單字符。要匹配 .,請使用 \。

[
標記一個中括號表達式的開始。要匹配 [,請使用 \[。

?
匹配前面的子表達式零次或一次,或指明一個非貪婪限定符。要匹配 ? 字符,請使用 \?。

\
將下一個字符標記為或特殊字符、或原義字符、或反向引用、或八進制轉義符。例如, ''n'' 匹配字符 ''n''。''\n'' 匹配換行符。序列 ''\\'' 匹配 "\",而 ''\('' 則匹配 "("。

^
匹配輸入字符串的開始位置,除非在方括號表達式中使用,此時它表示不接受該字符集合。要匹配 ^ 字符本身,請使用 \^。

{
標記限定符表達式的開始。要匹配 {,請使用 \{。

|
指明兩項之間的一個選擇。要匹配 |,請使用 \|。

在元字符前加 \ 轉義符,可以把特殊字符當作普通字符來使用。

比如:如要要匹配 1+1=2 ,正確的正則表達式應該為1\+1=2。否則, + 會被當作特殊字符對待。

除了特殊字符,所有的其他字符都不應該加 \ 。因為 \ 也是一個特殊字符。

\ 和普通字符組合在一起也可以創造一種特殊的意義。比如 \d 表示匹配所有的數字。

作為程序員,單引號和雙引號不是特殊字符會也許讓我們感到很驚訝。但這是正確的。因為我們在編程的時候,編程語言會知道引號之間的哪些字符表示特殊意義,編譯器在把字符串x傳遞給regex解釋引擎之前,會把它們處理成regex。比如,在C#中,如果我們要匹配 1\+1=2 ,在程序中我們要這樣寫: “1\\+1=2” ,C#編譯器會把 “\\” ,處理為一個“\” 。同樣,如果要匹配 C:\Temp ,首先,正則表達式要這樣寫 C:\\Temp,然後在程序中我們應該這樣寫:“ C:\\\\temp”。
<!---->

 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved