# 正規表示式
正規表示式就是乙個表示式,用來查詢乙個有指定【特點】的表示式,規則匹配的。
# 正規表示式定義的方式
var reg = /abc/;
var reg = new regexp('abc');
推薦使用字面量的方式,如同陣列和物件一樣,推薦使用字面量的建立方式
# 正規表示式使用方法
reg.test(str);
str.match(reg);
# 特殊屬性 i/g/m
g代表的是global全域性匹配
i代表ignorecase忽略大小寫,
m代表multiline多行匹配,
# 特殊字元
具有特殊含義的字元。
\ 轉義字元
| 或
## 方括號
[abc] 查詢方括號內的任意乙個字元
[^abc] 查詢任何不在方括號內的字元
[0-9] 查詢0-9之間的數字
[a-z] 查詢任何小寫字母
[a-z] 查詢任何大寫字母
[a-z] 查詢任何字母
(red|blue|green) 查詢指定字串(子表示式)
## 元字元
. 查詢單個字元,除了換行和行結束符。
\w 查詢單詞字元
\w 查詢非單詞字元
\d 查詢數字
\d 查詢非數字
\s 查詢空白字元
\s 查詢非空白字元
\b 查詢單詞邊界
\b 查詢非單詞邊界
\n 查詢換行符
\f 查詢換頁符
\r 查詢回車符
\t 查詢製表符
\v 查詢垂直製表符
\u*** 查詢以十六位進製數***x規定的unicode字元
## 量詞
以下均遵循貪婪匹配:
n+ 匹配任何包含至少乙個n的字元
n* 匹配任何包含0個或多個n的字元
n? 匹配任何0個或乙個n的字元
n 匹配x個n的序列字串
n 匹配x至y個n的序列字串
n$ 匹配以n結尾的字串
^n 匹配任何以n開頭的字串
?=n 匹配任何後面緊接著指定字串n的字串
?!n 匹配任何其後沒有緊接著指定字串n的字串
非貪婪匹配:
n+? n*? ...
## 補充
(?:n) 匹配時子表示式中沒有這一項(不補獲分組)
# regexp物件屬性
global 檢視regexp物件是否具有g標誌
ignorecase 檢視regexp物件是否具有i標誌
multiline 檢視regexp物件是否具有m標誌
source 檢視正規表示式源文字
lastindex 乙個整數標誌開始下一次匹配的字元位置(一般與exec一起使用)
# regexp物件方法
compile 編譯正規表示式。 (就是改變這個正規表示式)
exec 檢索字串中指定的值。返回找到的值,並確定其位置。
test 檢索字串中指定的值。返回 true 或 false。
# 字串方法
search 檢索正規表示式相匹配的值
match 查詢所有符合正則匹配條件的結果
replace 替換與正規表示式匹配的字串
split 把字串分割成陣列(注: 用字表示式分割的話會保留子表示式)
// 正規表示式實現aabb的形式變成bbaa
// var str = 'aabbccdd';
// var reg = /(\w)\1(\w)\2/g;
// var str1 = str.replace(reg, function($, $1,$2) )+$)/g;
// str.replace(reg, '.');
// 字串去重 aaaaaaaaaaaaaaaaaaaaaabbbbbbbbcccccccccc變成abc
// var str = 'aaaaaaaaaaaaaaaaaaaaaabbbbbbbbcccccccccc';
// var reg = /(\w)\1*(\w)\2*(\w)\3*/g;
// str.replace(reg, function($, $1, $2, $3)); //"abc"
// 把the-first-name轉換成小駝峰式thefirstname
// var str = 'the-first-name';
// var reg =/-(\w)/g;
// str.replace(reg, function($, $1) ) //thefirstname
// 匹配結尾的數字
// var str = 'dkfdj1232';
// var reg = /\d$/g;
// str.match(reg); //["2"]
// 統一空格數
// var str = ' fkjdf ';
// var reg = /\s+/g;
// str.replace(reg, ' ');//" fkjdf "
// 判斷字串是不是由數字構成
// var str = 'fdjfd214234234';
// var reg = /(\d*?:[a-za-z])/g;
// reg.test(str);// false
// 刪除字串中的空格
//刪除前後空格
// var str = ' d kdfjd dfjdkf ';
// var reg = /(^\s*)|(\s*)$/g;
// str.replace(reg, '');//"d kdfjd dfjdkf"
//刪除所有空格
// var reg = /(\s*)/g;
// str.replace(reg, '');//"dkdfjddfjdkf"
// 身份證號匹配
// var str = '12345678976543879x';
// var reg = /(^\d$)|(^\d$)|(^\d(\d|x|x)$)/; //不需要全域性匹配
// reg.test(str);
//郵箱位址驗證
var str = '[email protected]';
var reg = /^[0-9a-za-z_-]+@[0-9a-za-z_-]+(\.[0-9a-za-z_-]+)+$/;
reg.test(str);
正規表示式 常用正規表示式
一 校驗數字的表示式 1 數字 0 9 2 n位的數字 d 3 至少n位的數字 d 4 m n位的數字 d 5 零和非零開頭的數字 0 1 9 0 9 6 非零開頭的最多帶兩位小數的數字 1 9 0 9 0 9 7 帶1 2位小數的正數或負數 d d 8 正數 負數 和小數 d d 9 有兩位小數的...
正規表示式 常用正規表示式
網域名稱 a za z0 9 a za z0 9 a za z0 9 a za z0 9 interneturl a za z s 或 http w w w 手機號碼 13 0 9 14 5 7 15 0 1 2 3 4 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 或者 1 3...
正規表示式常用
正規表示式的介紹 1 資料型別 基本資料型別 number string boolean null undefined 複雜資料型別 array function object math date regexp正規表示式 string number boolean 2 regular express...