1. 程式人生 > >JS中的正則表示式

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。
所以解決辦法就是在正則表示式首尾加上^和re=\w+@[az09]+.[az]