久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

正則表達式是什么意思?正則表達式語法大全

168次閱讀
沒有評論

共計 3816 個字符,預計需要花費 10 分鐘才能閱讀完成。

正則表達式是什么意思?正則表達式 (regular expression) 描述了一種字符串匹配的模式(pattern),可以用來檢查一個串是否含有某種子串、將匹配的子串替換或者從某個串中取出符合某個條件的子串等。

正則表達式是由普通字符(例如字符 a 到 z)以及特殊字符(稱為 ” 元字符 ”)組成的文字模式。模式描述在搜索文本時要匹配的一個或多個字符串。正則表達式作為一個模板,將某個字符模式與所搜索的字符串進行匹配。

例如:

  • runoo+b,可以匹配 runoob、runooob、runoooooob 等,+ 號代表前面的字符必須至少出現一次(1 次或多次)。

  • runoo*b,可以匹配 runob、runoob、runoooooob 等,* 號代表前面的字符可以不出現,也可以出現一次或者多次(0 次、或 1 次、或多次)。

  • colou?r?可以匹配 color 或者 colour,? 問號代表前面的字符最多只可以出現一次(0 次、或 1 次)。

正則表達式語法大全

正則表達式是一種文本模式,包括普通字符(例如,a 到 z 之間的字母)和特殊字符(稱為“元字符”)。模式描述在搜索文本時要匹配的一個或多個字符串。

1. 正則表達式基本語法

兩個特殊的符號 ’^’ 和 ’$’。他們的作用是分別指出一個字符串的開始和結束。例子如下:

“^The”:表示所有以 ”The” 開始的字符串(”There”,”The cat” 等);
“of despair$”:表示所以以 ”of despair” 結尾的字符串;
“^abc$”:表示開始和結尾都是 ”abc” 的字符串——呵呵,只有 ”abc” 自己了;
“notice”:表示任何包含 ”notice” 的字符串。

象最后那個例子,如果你不使用兩個特殊字符,你就在表示要查找的串在被查找串的任意部分——你并
不把它定位在某一個頂端。

其它還有 ’*’,’+’ 和 ’?’ 這三個符號,表示一個或一序列字符重復出現的次數。它們分別表示“沒有或
更多”,“一次或更多”還有“沒有或一次”。下面是幾個例子:

“ab*”:表示一個字符串有一個 a 后面跟著零個或若干個 b。(”a”, “ab”, “abbb”,……);
“ab+”:表示一個字符串有一個 a 后面跟著至少一個 b 或者更多;
“ab?”:表示一個字符串有一個 a 后面跟著零個或者一個 b;
“a?b+$”:表示在字符串的末尾有零個或一個 a 跟著一個或幾個 b。

你也可以使用范圍,用大括號括起,用以表示重復次數的范圍。

“ab{2}”:表示一個字符串有一個 a 跟著 2 個 b(”abb”);
“ab{2,}”:表示一個字符串有一個 a 跟著至少 2 個 b;
“ab{3,5}”:表示一個字符串有一個 a 跟著 3 到 5 個 b。

請注意,你必須指定范圍的下限(如:”{0,2}” 而不是 ”{,2}”)。還有,你可能注意到了,’*’,’+’ 和
‘?’ 相當于 ”{0,}”,”{1,}” 和 ”{0,1}”。
還有一個 ’|’,表示“或”操作:

“hi|hello”:表示一個字符串里有 ”hi” 或者 ”hello”;
“(b|cd)ef”:表示 ”bef” 或 ”cdef”;
“(a|b)*c”:表示一串 ”a””b” 混合的字符串后面跟一個 ”c”;

‘.’ 可以替代任何字符:

“a.[0-9]”:表示一個字符串有一個 ”a” 后面跟著一個任意字符和一個數字;
“^.{3}$”:表示有任意三個字符的字符串(長度為 3 個字符);

方括號表示某些字符允許在一個字符串中的某一特定位置出現:

“[ab]”:表示一個字符串有一個 ”a” 或 ”b”(相當于 ”a|b”);
“[a-d]”:表示一個字符串包含小寫的 ’a’ 到 ’d’ 中的一個(相當于 ”a|b|c|d” 或者 ”[abcd]”);
“^[a-zA-Z]”:表示一個以字母開頭的字符串;
“[0-9]%”:表示一個百分號前有一位的數字;
“,[a-zA-Z0-9]$”:表示一個字符串以一個逗號后面跟著一個字母或數字結束。

你也可以在方括號里用 ’^’ 表示不希望出現的字符,’^’ 應在方括號里的第一位。(如:”%[^a-zA-Z]%” 表
示兩個百分號中不應該出現字母)。

為了逐字表達,你必須在 ”^.$()|*+?{\” 這些字符前加上轉移字符 ’\’。

請注意在方括號中,不需要轉義字符。

2. 正則表達式驗證控制文本框的輸入字符類型

1. 只能輸入數字和英文的:

<input onkeyup=”value=value.replace(/[\W]/g,”) ” onbeforepaste=”clipboardData.setData(‘text’,clipboardData.getData(‘text’).replace(/[^\d]/g,”))” ID=”Text1″ NAME=”Text1″>

2. 只能輸入數字的:

<input onkeyup=”value=value.replace(/[^\d]/g,”) ” onbeforepaste=”clipboardData.setData(‘text’,clipboardData.getData(‘text’).replace(/[^\d]/g,”))” ID=”Text2″ NAME=”Text2″>

3. 只能輸入全角的:

<input onkeyup=”value=value.replace(/[^\uFF00-\uFFFF]/g,”)” onbeforepaste=”clipboardData.setData(‘text’,clipboardData.getData(‘text’).replace(/[^\uFF00-\uFFFF]/g,”))” ID=”Text3″ NAME=”Text3″>

4. 只能輸入漢字的:

<input onkeyup=”value=value.replace(/[^\u4E00-\u9FA5]/g,”)” onbeforepaste=”clipboardData.setData(‘text’,clipboardData.getData(‘text’).replace(/[^\u4E00-\u9FA5]/g,”))” ID=”Text4″ NAME=”Text4″>

3. 正則表達式的應用實例通俗說明

*******************************************************************************

// 校驗是否全由數字組成

/^[0-9]{1,20}$/

^ 表示打頭的字符要匹配緊跟 ^ 后面的規則

$ 表示打頭的字符要匹配緊靠 $ 前面的規則

[] 中的內容是可選字符集

[0-9] 表示要求字符范圍在 0 - 9 之間

{1,20}表示數字字符串長度合法為 1 到 20,即為 [0-9] 中的字符出現次數的范圍是 1 到 20 次。
/^ 和 $/ 成對使用應該是表示要求整個字符串完全匹配定義的規則,而不是只匹配字符串中的一個子串。
*******************************************************************************

// 校驗登錄名:只能輸入 5 -20 個以字母開頭、可帶數字、“_”、“.”的字串

/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$/

^[a-zA-Z]{1} 表示第一個字符要求是字母。

([a-zA-Z0-9]|[._]){4,19} 表示從第二位開始(因為它緊跟在上個表達式后面)的一個長度為 4 到 9 位的字符串,它要求是由大小寫字母、數字或者特殊字符集 [._] 組成。

*******************************************************************************

// 校驗用戶姓名:只能輸入 1 -30 個以字母開頭的字串

/^[a-zA-Z]{1,30}$/

*******************************************************************************

// 校驗密碼:只能輸入 6 -20 個字母、數字、下劃線

/^(\w){6,20}$/

\w:用于匹配字母,數字或下劃線字符

*******************************************************************************

// 校驗普通電話、傳真號碼:可以“+”或數字開頭,可含有“-”和“”

/^[+]{0,1}(\d){1,3}[]?([-]?((\d)|[]){1,12})+$/

\d:用于匹配從 0 到 9 的數字;

“?”元字符規定其前導對象必須在目標對象中連續出現零次或一次

可以匹配的字符串如:+123 -999 999;+123-999 999;123 999 999;+123 999999 等

*******************************************************************************

// 校驗 URL

/^http[s]{0,1}:\/\/.+$/ 或 /^http[s]{0,1}:\/\/.{1,n}$/ (表示 url 串的長度為 length(“https://”) + n )

\ /:表示字符“/”。

. 表示所有字符的集

+ 等同于{1,},就是 1 到正無窮吧。

*******************************************************************************

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-06-14發表,共計3816字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
免責聲明:本站分享資源部分來源互聯網,僅供學習交流,商業用途請購買正版,否則版權糾紛由用戶承擔,丸趣TV不承擔連帶責任。如有侵權請聯系博主我們盡快刪除處理!
Copyright @ 2014-2023| 丸趣TV All rights reserved.Theme By Puock. 豫ICP備16006851號-5
主站蜘蛛池模板: 繁峙县| 策勒县| 海南省| 青岛市| 伊川县| 南溪县| 西吉县| 长乐市| 石门县| 阿拉善盟| 靖西县| 新乐市| 东乌珠穆沁旗| 金山区| 维西| 龙里县| 铁岭市| 盘锦市| 盈江县| 芷江| 綦江县| 金寨县| 耿马| 鸡西市| 绩溪县| 孝感市| 澄迈县| 云浮市| 湟源县| 邻水| 宿迁市| 泗水县| 平凉市| 白沙| 南丹县| 贵港市| 乌拉特后旗| 安塞县| 长武县| 盖州市| 琼中|