/*
* 規則分析
* 1. 可能出現 + - ,也可能不出現
* 2. 一位0-9都可以,多位首位不能為0
* 3.小數部分可能有可能沒有,一旦有後面必須有小數點加數字
*/let reg =
/^[+-]?(\d|([1-9]\d+))(\.\d+)?$/
;
// 數字、字母、下劃線
// 6 - 16位
let reg =
/^\w$/
;
/*
* 1. 漢字 /^[\u4e00-\u9fa5]$/
* 2. 長度 2~10 位
* 3. 可能有譯名 ·漢字
*/let reg =
/^[\u4e00-\u9fa5](·[\u4e00-\u9fa5])$/
let reg =
/^\w+((-\w+)|(\.\w+))*@[a-za-z0-9]+((\.|-)[a-za-z0-9]+)*\.[a-za-z0-9]+$/
/*
* 1. 共18位
* 2. 最後一位可能是x
* 3. 身份證號前六位:省市縣
* 4. 中間8位:出生年月日
* 5. 最後四位:
* 最後一位:x或數字
* 倒數第二位:偶數:女,奇數:男
* 其餘的是經過演算法算出來的
*///小括號的第二個作用:分組捕獲,不僅可以把大正則匹配的資訊捕獲到,還可以單獨捕獲到每個小分組的內容
let reg =
/^(\d)(\d)(\d)(\d)\d(\d)(\d|x)$/
字串string.prototype上支援正規表示式的處理方法
let str =
"alvin2019yangfan2020qihang2021"
;let reg =
/\d+/
每執行一次exec只能捕獲到乙個符合正則規則的,但是預設情況下,不管執行多少遍,獲取的結果都是第乙個匹配到的,其餘的捕獲不到
正則的懶惰性:預設值捕獲第乙個,懶惰性的原因是:預設情況下lastindex值不會被改變,每次都是從字串開始位置查詢。
/*
* 需求:由於exec每次只能捕獲一次,需要編寫乙個execall,執行一次可以把所有匹配的結果都捕獲到(前提是正則一定要設定全域性修飾符g)
* 字串中的match方法可以在執行一次,捕獲到所有匹配的資料(前提是也需要設定全域性修飾符g)*/~
function()
return ary;
} regexp.prototype.execall = execall;}(
);let reg =
/\d+/g
console.
log(reg.
execall
(str)
);
//以身份證號為例:
let str =
"130828199001061235"
let reg =
/^(\d)(\d(\d)(\d)\d(\d)(\d|x))$/
;console.
log(reg.
exec
(str));
console.
log(str.
match
(reg)
);
let str =
"年月日"
;let reg =
/\/g
;console.
log(reg.
test
(str));
//true
cosole.
log(regexp.$1);
//0
let str =
"alvin@2019|alvin@2020"
;// 把字串中所有的alvin替換成成hello
// 因為字串的replace方法每次只能替換乙個,所以這裡就需要呼叫2次,如果是替換多個的話就需要呼叫多次很麻煩
// 這裡我們就可以通過正則來配合使用實現一次全部替換
let reg =
/alvin/g
str.
replace
(reg,
"hello"
);
let str =
"2019-08-13"
;//變為2023年08月13日
let reg =
/^(\d)-(\d)-(\d)$/
;//方案一
let time = str.
replace
(reg,
"$1年$2月$3日");
console.
log(time)
;//方案二:[str].replace([reg],[function])
//首先用reg和time進行匹配捕獲,能匹配到幾次就會把傳遞的函式執行幾次,而且是匹配一次就執行
//不僅把方法執行,而且replace還給方法傳遞了實參資訊(和exec捕獲的內容一致的資訊:大正則匹配的內容和小分組匹配的內容)
//函式中返回的是啥就把匹配的內容替換成啥
time = str.
replace
(reg,
(all, $1
,$2,$3
)=>
);
let str =
"good good study, day day up!"
;let reg =
/\b([a-za-z])[a-za-z]*\b/g
;// \b表示單詞邊界
str = str.
replace
(reg,
(...arg)
=>
)console.
log(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...
正規表示式 常用表示式
羅馬數字 string p1 m d?c c dm l?x x lc v?i i vx string t1 vii match m1 regex.match t1,p1 交換前二個單詞 string t2 the quick brown fox string p2 s s s regex x2 ne...