學習正則(二)——進階

1、replace(searchValue,newValue)
在這裏插入圖片描述
2、子項
在這裏插入圖片描述
3、子項在match與exec方法中的使用 (下圖補充:exec 使用g時,匹配的結果跟匹配的次數有關)
在這裏插入圖片描述
4、子項在replace方法中的使用
在這裏插入圖片描述
例如

var str = 'abc123def';
var re = /\d+/;
var newStr = str.replace(re,"$$");//將匹配結果替換成$
var newStr = str.replace(re,"$&789");//$& 引用匹配結果本身。abc123789def
var newStr = str.replace(re,"-$`000");//$& 引用匹配結果左邊的內容。abc-abc000def

var re1 =/(\d)+/;
var newStr = str.replace(re1,"$1");//$1 引用第一個子項 abc3def
var re2 =/((\d)+)/;
var newStr = str.replace(re2,"$1");//abc123def
var newStr = str.replace(re2,"$1");//abc3def
例子:利用子項功能對日期的格式修改
var str ='2018-5-20';
var re = /(\d{4})-(\d{1,2}) (\d{1,2})/;
str.replace(re,"$2-$3 $1");

在這裏插入圖片描述
5、RegExp.$n
在這裏插入圖片描述
6、子項的反向引用

在這裏插入圖片描述
案例三:str =‘jfid2222e2222iji99999k9999jfjd’; 想要匹配出[2222e2222,99999k9999]
var re =/((\d)\2+)[a-z]\1/g

7、零寬斷言
在這裏插入圖片描述

案例解答:var re1 =/\w+(?=2013)/;

8、非捕獲分組
在這裏插入圖片描述

案例解答 : var re = /(col-)(?:xs-|md-)?(\d)/g;

9、命名捕獲分組
在這裏插入圖片描述

案例解答:
var  re =/(?<year>)\d{4})-(?<month>\d{1,2})-(?<day>\d{1,2})/
var newStr =str.replace(re,"$<month>-$<day> $<year>");

在這裏插入圖片描述

正則的學習就結束了,最後有一個思考題如圖

在這裏插入圖片描述
補充幾道面試題:
1、實現一個函數,輸入爲一個字母或數字’AABBCAZDFEH’組成的字符串,去重後按照原順序輸出新的字符串。(不能跳出頁面編寫代碼)

var str = 'AABBCAZDFEH';
var reg = /([a-zA-Z])\1/g;
str.replace(reg,'$1');

2、對密碼應用以下限制:其長度必須介於 4 到 8 個字符之間,並且必須至少包含一個數字。

在這裏插入代碼片
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章