正規表示式有兩種建立方式, 第一種生成乙個regexp物件,第二種生成乙個string物件:
var regobj = new regexp("pattern",[,"flags"]);
var regobj = /pattern/[flags]; //該方式不能用引號將pattern和flags括起來
//pattern:必選項,正規表示式的字串;
//flags:可選項,一些標誌組合。
g: 全域性匹配
i: 忽略大小寫
好了,根據以上規則,我們生成乙個正規表示式,怎麼使用呢?當然是用在字串的查詢,替換,分割操作中。現在有字串
var s1 = "abcd-1234*uioy?hellohelloabcdefg^[email protected]"
s1.match(substring), 在字串s1中查詢substring, substring可以是乙個普通字串,也可以是乙個正則,比如現在讓著你查詢s1中有沒有hello,只需要
s1.match("hello")
如果現在需要查詢s1當中的某個數字字串,比如**號碼,substring就可以傳入乙個正規表示式s1.match(/\d-\d+/)
這樣就可以匹配出其中的**(按區號4位匹配)
如果要匹配s1中的數字,可以使用s1.match(/\d+/),可以匹配出1234, 如果想匹配s1中所有的數字子串,只需要使用 flag,s1.match(/\d+/g)
2. s1.replace(reg, target), 根據正規表示式來把匹配到子串,替換成目標串,例如
s1.replace(/\d/g, '0') //把所有的數字變成0 s1.replace(/\d/g, '') //去除s1中所有的非數字
如果想對匹配出來的字串進行修改怎麼辦,比如在hello後面加world,就要用到$1$2...., $1代表匹配出來的第乙個()分組中的資料,那麼只要執行s1.replace(/(hello)/g, "$1world"),就可以在原hello,後面新增world,如果使用s1.replace(/(hello)/ig, "$1world"), 可以發現大寫的hello後面也被新增上了world,如果我想在大寫的hello後新增大寫的world,執行s1.replace(/(hello)(hello)/, "$1world$2world"), 兩個分組分別對應$1,$2
3. s1.search(reg), 在s1中查詢reg匹配的字串,並返回起始位置, 如果沒有返回-1
s1.search(/\d-\d+/) 查詢s1中有沒有0000-000000這種格式的**號碼
除了字串物件的幾個方法中可以使用正則外,正則物件本身也有幾個方法可以用來檢測,處理字串, 假設有regexp物件
var r1= new regexp("\d+");
var r2 = /^1[3578]/[0-9]
兩個
1. r2.test(str) , 方法用於檢測乙個字串是否匹配某個模式, 根據r2的規則來判斷str是否滿足條件,多用來檢測使用者的輸入是否合法,返回true/false.比如執行
r2.test("13953122346") -> true
r2.test("123456789") -> false
2.r2.exec(str) , 返回乙個符合r2匹配規則的陣列 ,類似於str.match()
其他 貪婪模式和非貪婪模式
Javascript正規表示式
這段時間學習js,正好遇到了正規表示式。下面通過使用例項介紹一下正規表示式。正規表示式,又稱正規表示法 常規表示法 英語 regular expression,在 中常簡寫為regex regexp或re 電腦科學的乙個概念。正規表示式使用單個字串來描述 匹配一系列符合某個句法規則的字串。在很多文字...
JavaScript 正規表示式
一 什麼是正規表示式 正規表示式 regular expression 是乙個描述字元模式的物件。測試正規表示式 regexp 物件包含兩個方法 test 和exec 功能基本相似,用於測試字串匹配。test 方法在字串中查詢是否存在指定的正規表示式並返回布林值,如果存在則返回true,不存 在則返...
javascript 正規表示式
正規表示式 regexp物件 主要用於表單驗證 1 建立正規表示式 1 var ret pattern pattern是內容,可以是正規表示式的內容,可以是字元或是其他的內容 2 var rag new regexp pattern 括號內可以是雙引號或者單引號 2 正規表示式的exec方法 reg...