天天看點

正規表達式基礎

正規表達式基礎

1.    Search 查找某個字元的位置

var str='abcdef'

alert(str.search('a'))

2.Substring   擷取子字元串

alert(str.substring(2-5))//從字元串中截取2-5 但是不包括5

也可以傳進去一個參數 從哪個參數直接截取到結尾

alert(str.substring(2))//從第二個位置開始截取到末尾

3.CharAt      擷取某個字元

alert(str.charAt('2'))//擷取2位置上的值

4.Split        分割字元串,獲得數組

var str='12-22-aa-9'

var arr=str.split('-')

alert(arr)

二、正規表達式

1、什麼是正規表達式:可以了解為一個規則,也叫規則表達式

正規表達式有2種方法寫

第一種 js風格

var re=new RegExp('b') 這個裡面的b就代表b本身

alert(str.search(re));

第二種perl風格

var re=/b/; 跟第一種效果一樣

2、i的用法(忽略大小寫)

第一種var re=new RegExp('b', 'i')

   第二種var re=/b/i;

   var str='aBcdef'

   alert(str.search(re));

3、match 把所有比對的東西,全部提取出來

\d  數字

var str='aqq 23  3  vaqwd'

var re=/\d/;找數字,但是隻能找一個

alert(str.match(re));

4、g可以把所有數字找出來

var re=/\d/g;找數字,全部找出來,但是不是連起來的,比如23會變成2,3

5、想解決上面不是連起來的問題使用+号,表示若幹

var str='aqq 23 222 3  vaqwd'

var re=/\d+/g;

6、replace 替換

下面例子把a替換成0

var re=/a/g;

alert(str.replace(re,'0'))

多個替換的寫法

Var re=/北京|百度|淘寶/g

7、分括号[] 專業叫法是元字元,我習慣叫方括号

用法1:[abc]這是一種或的用法abc取那個都行

var str='apc xpc dpc ipc ppc'

        var re=/[apx]pc/g;

        alert(str.match(re))

效果看一下就明白了

用法2:[a-z] [0-9]範圍

var str='a22c 33 dp44 445 ppc'

        alert(str.match(/[0-9]+/g))

用法3:[^a-z]排除a-z

        alert(str.match(/[^0-9]+/g))

用法4:組合起來用[^a-z0-9]排除a-z和0-9

8、過濾HTML标簽的方法,比如小說裡面都有好多标簽 給過濾掉

var re=/<[^<>]+>/g

9、\d 數字 [0-9]  

\w 英文 數字 下劃線 [a-z0-9_]

\s 空白字元

\D [^0-9]

\W [^a-z0-9_]

\S 非空白字元

10、量詞

{n} 正好出現n次

\d{8} 8位數字

電話号碼是非0開始的是以[1-9]\d{7}

{n,m} 最少n次,最多m次

QQ号碼最少5位數字而且開頭是非0,寫法是

[1-9]\d{4,10}

{n,}最少n次,最多不限

+  等價于{1,}最低出現一次,最多不限

?  等價于{0,1}最少1次,最多1次,也就是可有可無

*等價于{0,}

11、郵箱校驗

一串英文、數字、下滑線   @   一串英文、數字  .   一串英文

\w+                      @   [a-z0-9]+       \.   [a-z]+

Var re=/^\w+@[a-z0-9]+\.[a-z]+$/i   // test檢驗正則是否符合規則。正确傳回true 不确定為flase

Test有個特性  字元串一部分符合要求,就可以傳回true

^不出現在方括号裡面

代表^行首和$行尾

if(re.test(oTxt.value))

{

Alert(’合法的郵箱’);

}

else

Alert(’不合法的郵箱’);

繼續閱讀