正規表達式基礎
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(’不合法的郵箱’);