javascript——Regex,javascript
Regex(RegExp對象):主要用於表單驗證
1、建立Regex:
(1)、var ret = /pattern/; pattern是內容,可以是Regex的內容,可以是字元或是其他的內容
(2)、var rag = new RegExp("pattern");括弧內可以是雙引號或者單引號
2、Regex的exec方法:
reg.exec(str); ,reg為建立的Regex,str為要執行Regex的目標字串
如:var reg = /test/; //此處如果是e,則輸出e,如果是so,則輸出為null
var str = "testString";
var result = reg.exec(str);
alert(result);//輸出test,當沒有與Regex相匹配的內容時,輸出null
3、c{n}:c表示字母,n表示個數
如:c{1}表示匹配一個c
c{2}表示匹配兩個連續的c
4、c{m,n}:匹配m到n個c,m小於等於n
如:c{3,4}:匹配連續的3個或4個c。如果多於4個,仍然只匹配4個
5、c{n,}:表示最少有n個c,最多則不限個數
6、* 表示0次或多次,c*等同於c{0}
7、 +表示1次或多次,c+等同於c{1,}
8、 ?表示0次或1次,c?等同於c{0,1}
3~8的Regex都是貪心模式,只要在合法的情況下,會盡量多的匹配字元
非貪心模式:正則盡量少地匹配字元,在數位符號後面,組成的形式如:{n,}? , *? , +? , ?? , {m,n}?
9、^表示只能匹配字串的開頭
10、 $表示只能匹配字串的結尾
11、‘.’匹配字串中除了分行符號\n之外的所有字元
12、“ | ”Regex中的或,二選一,如b|c表示,匹配b或c
13、字元集合[abc]表示a或者b或者c的任意一個字元
[a-z]:小寫字母;[A-Z]大寫字母;[0-9]數字
14、不區分大小寫:reg = /b|c$/i,即在Regex後面加一個i
15、反字串:p^在Regex開始部分的時候表示開頭的意思,例如/^c/表示開頭是c;但是在字元集合中,它表示的是類似“非“的意思,例如[^abc]就表示不能是a,b或者c中的任何一個。
[^0-9]表示非數字,[^a-z]表示非小寫字母,一次類推 …16、\d表示數位意思,相反,\D表示非數字17、\w表示單詞字元,等同於字元集合[a-zA-Z0-9_]。 p\W表示非單詞字元,等效於[^a-zA-Z0-9_]18、
對電子郵件的驗證:
var myreg = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/;19、
對於手機號碼的驗證(提供了兩種方法)
var mobile=/^((13[0-9]{1})|159|153)+\d{8}$/;
var mobile1=/^(13+\d{9})|(159+\d{8})|(153+\d{8})$/;
一個JavaScriptRegex的問題
你的Regex的意思是匹配開頭是8位元字或結尾是11位元字的串
當然正確了
把^和$去了
你要注意,第二個你用了一個或者(|),或的運算優先順序最低,也就是說程式會分別匹配^[0-9]{8}和[0-9]{11}$,而不是匹配^[0-9]{8}$,而^[0-9]{8}是表示行首8位元字,^[0-9]{8}$表示整個串是8位元字
在javascript中怎使用Regex??
<script type="text/javascript">
var reg = /^\d{5}$/;
var str = '12345';
var result;
result = reg.test(str); //測試:str 是否符合 正則 ^\d{5}$,返回true 或 false
//result = reg.exec(str); //尋找:str 中否符合 正則 ^\d{5}$ 的字元,找不到返回 null
</script>