var re = /a/;//簡寫
/.../裡不能為空,因為會誤以為是注釋;
var re = new regexp('a');
新建乙個regexp
物件;和新建array物件,object物件一樣,有簡寫;
平時建議用簡寫,因為簡寫的效能更好;
但如果正規表示式裡有非類字串的型別(其實並不是字串,只能不知怎麼表述),則不能簡寫,因為/.../裡寫的只能類字串型別;
var arr = ;
var arr = new array();
var obj = {};
var obj = new object();
test()
test()
: 正則去匹配字串,如果匹配成功就返回真,如果匹配失敗就返回假
語法:正則.test(字串)
var str = 'abcdef';
var re = /b/;
alert( re.test(str) ); //true
search()
search()
: 正則去匹配字串 , 如果匹配成功,就返回匹配成功的位置,如果匹配失敗就返回 -1,和indexof()
差不多
語法:字串.search(正則)
正則預設是區分大小寫的;
如果不區分大小寫的話,需要在正則的最後加標識i
var str = 'abcdef';
var re = /b/i;
//var re = new regexp('b','i');
alert( str.search(re) );
match()
match()
: 正則去匹配字串,如果匹配成功,就返回匹配成功的陣列,如果匹配不成功,就返回null
語法:`字串.match(正則)
正則預設匹配成功就會結束,不會繼續匹配
如果想全部查詢,就要加標識 g(全域性匹配)`
replace()
replace()
: 正則去匹配字串,匹配成功的字元去替換成新的字串
語法:字串.replace(正則,新的字串)
第二個引數:可以是字串,也可以是乙個**函式
var str = 'aaa';
var re = /a+/g;
str = str.replace(re,function(str));
alert(str);
匹配子項
小括號 () (還有分組操作的意思)
把正則的整體叫做(母親)
第乙個小括號裡面的正則,叫做這個第乙個子項(母親的第乙個孩子),第二個小括號就是第二個子項
var str = '2013-6-7';
var re = /(\d+)(-)/g;
str = str.replace(re,function($0,$1,$2));
alert( str );
match()
中也有匹配子項
var str = 'abc';
var re1 = /abc/;
var re2 = /(a)(b)(c)/;
alert( str.match(re1) ); //abc
alert( str.match(re2) ); //[abc,a,b,c]
//當match不加g的時候才可以獲取到子項的集合
字元類
一組相似的元素,用 中括號的整體代表乙個字元,如果想代表多個,則在後面加上乙個
+
;
var str1 = 'abc';
var str2 = 'abdc';
var re1 = /a[bde]c/;//bde是或的關係
var re2 = /a[bde]+c/;//
alert( re1.test(str1) ); //true
alert( re1.test(str2) ); //false
alert( re2.test(str2) ); //true
排除 ^
: 如果^
寫在
裡面的話,就代表排除的意思
裡面還可以寫乙個範圍,但是要從小到大;
var re = /a[a-z0-9a-z]c/;
常見元字元
.
: 匹配除 "\n" 之外的任何單個字元。要匹配包括 '\n' 在內的任何字元,請使用像"(.|\n)"的模式。
^
: 匹配輸入字串的開始位置。如果設定了 regexp 物件的 multiline 屬性,^ 也匹配 '\n' 或 '\r' 之後的位置
$
: 匹配輸入字串的結束位置。如果設定了regexp 物件的 multiline 屬性,$ 也匹配 '\n' 或 '\r' 之前的位置
\s
: 匹配任何空白字元,包括空格、製表符、換頁符等等。等價於 [ \f\n\r\t\v]
\s
: 匹配任何非空白字元。等價於 [^ \f\n\r\t\v]
\d
: 匹配乙個數字字元。等價於[0-9]
\d
: 匹配乙個非數字字元。等價於[^0-9]
\w
: 匹配包括下劃線的任何單詞字元。等價於[a-za-z0-9_]
( 字母 ,數字,下劃線_ )
\w
: 匹配任何非單詞字元。等價於[^a-za-z0-9_]
\b
: 匹配乙個單詞邊界(起始,結束,空格),也就是指單詞和空格間的位置。例如, 'er\b' 可以匹配"never" 中的 'er',但不能匹配 "verb" 中的 'er'
\b
: 匹配非單詞邊界。'er\b' 能匹配 "verb" 中的 'er',但不能匹配 "never" 中的 'er'
\r
: 匹配乙個回車符。等價於\x0d
和\cm
\t
: 匹配乙個製表符。等價於\x09
和\ci
\num
: 匹配 num,其中 num 是乙個正整數。對第num個子項的引用。例如,'(.)\1' 匹配兩個連續的相同字元。
量詞類:
*
: 匹配前面的子表示式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"。* 等價於
+
: 匹配前面的子表示式一次或多次。例如,'zo+' 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。+ 等價於
?
: 匹配前面的子表示式零次或一次。例如,"do(es)?" 可以匹配 "do" 或 "does" 中的"do" 。? 等價於
: n 是乙個非負整數。匹配確定的 n 次。例如,'o' 不能匹配 "bob" 中的 'o',但是能匹配 "food" 中的兩個 o
: n 是乙個非負整數。至少匹配n 次。例如,'o' 不能匹配 "bob" 中的 'o',但能匹配 "foooood" 中的所有 o。'o' 等價於 'o+'。'o' 則等價於 'o*'
: m 和 n 均為非負整數,其中n <= m。最少匹配 n 次且最多匹配 m 次。例如,"o" 將匹配 "fooooood" 中的前三個 o。'o' 等價於 'o?'。請注意在逗號和兩個數之間不能有空格
?
: 當該字元緊跟在任何乙個其他限制符 (*, +, ?, , , ) 後面時,匹配模式是非貪婪的。非貪婪模式盡可能少的匹配所搜尋的字串,而預設的貪婪模式則盡可能多的匹配所搜尋的字串。例如,對於字串 "oooo",'o+?' 將匹配單個 "o",而 'o+' 將匹配所有 'o'。
匹配中文:[\u4e00-\u9fa5]
行首行尾空格:^\s*|\s*$
email:^\w+@[a-z0-9]+(\.[a-z]+)$
**:[a-za-z]+://[^\s]*
qq號:[1-9][0-9]
身份證:[1-9]\d|[1-9]\d|[1-9]\dx
可以把這些正則放到乙個空間裡,呼叫起來方便;
var re = /,
email : /[1-9]\d/,
...}需要時就調相應的正則:
re.qq.test(str);
C Primer Chapter One學習筆記
筆記 1.流 從io裝置上讀入或寫出的字串行,用來說明字元隨時間順序生成或消耗。2.輸入輸出符可連用原因 operator 或operator 返回stream物件。3.要測試程式那個語句出錯,使用cout 4.新建乙個內建型別,如int i 0 最好先初始化,不然用到的時候沒初始化會產生奇怪的錯誤...
BroadcastReceiver學習筆記
需要注意 的是,不要在 onreceive 方法中新增過多的邏輯或者進行任何的耗時操作,因為在廣播接收 器中是不允許開啟執行緒的,當 onreceive 方法執行了較長時間而沒有結束時,程式就會報錯。有序broadcast,sendorderedbroadcast intent,null abort...
CDISC SDTM SE domain 學習筆記
整理翻譯自 sdtm ig 3.2 www.cdisc.org sdtm se subject elements 鞏固每個subject的epochs和elements的起止時間點.se對於有多個 時期的試驗有著重要的用處 如crossover試驗 se包含乙個subject從乙個element進入...