JS中的正則表示式
Js中常見的對字串進行操作的方法有:
search(‘str’)搜尋位置,當沒有找到的時候,返回值為-1.
substring(2,5)獲得第二到第五個位置的字串(不包括結束位置五的字元!)
substring(2)從第二個位置開始往後取。
charAt()獲取某個位置的字串。
split(‘-’)切分,將字串以‘-’符號切分成陣列。
match( )將所有符合要求的提取出來。
正則表示式有兩種表示方式:
一、js風格——var re =new RegExp(‘a’,‘i’)
二、perl風格——/a/i
元字元(方括號):
[abc]pc——(abc,bpc,cpc)
[a-z],[0-9]都是範圍
[^a-z]除了字母
[^a-z0-9]除了字母和數字
正則表示式常用的轉義字元有:
i 為忽略大小寫 g 為找到全部
.(點)——任意字元,但是一般很少使用,殺傷力太大。
\d——數字
\w——英文,數字和下劃線
\s——空白字元
\D——[^1-9]非數字
\W——[^a-z0-9]非英文、數字或下劃線
\d——代表d字母。
量詞:
{n}:正好出現n次。比如\d{8},則為出現8次數字,[1-9]\d{7}則為第一位為1-9,後面七位為數字。
{n,m}最少出現n次,最多出現m次。
{n,}最少n次,最多不限。
?={0,1} 可有可無。例如區號,(0\d{2,3}-)?[1-9]\d{7}
var str = “13 ,24 ,5678”
str.match(re)
re=/\d/g 結果為1,3,2,4,5,6,7,8因為只找了一位數字。
re=/\d\d/g結果為13,24,56,78,是找了兩位數字
re=/\d+/g結果為13 ,24 ,5678,加號 代表若干,即多少都可以。
replace方法可以用來進行替換:
str.replace(/a/g,”*”)即所有的a都替換成星號。
過濾HTML標籤:
re=/[^<>]+/g 意思為 在尖括號內除了<>之外。
test方法校驗:
re.test(oTxt.value)
在test方法中,只要有一部分而不是全部符合 ,其返回值就為true。
所以解決辦法就是在正則表示式首尾加上^和