正則表達式不是單純的js範疇,所以標題這樣取比較好一點,正則表達式運用於檢測字符串格式,他所表示的是一種字符串格式,根據他索引到字符串中相應位置進行想要的操作,前面主要是小編自身爲了記憶做的比較繁瑣的筆記,後面會結合常見案例來說。
轉義字符 \ :
轉義字符 \ 將後面所跟的內容轉爲文本
通過它可以實現多行文本
var str = "我是\ 多行文本"
定義:
1. var reg = / / ; //其中的每一位我們可以默認它帶有括號,當我們帶括號寫時就可以爲這一位添加更多的條件了
2. var reg =new RegExp("正則表達式" , 索引模式) ;
有聯繫的一些方法:
初始狀態下正則匹配完全按照內容匹配而且次數爲1次,實際上格式不可能什麼都是字符串索引,對應格式就有對應代表規則
三種索引模式:
i:忽略大小寫
g:全局索引
m:多行匹配 //當存在換行時正則必須加上m才能匹配多行
元字符:
大寫是小寫的非
我們以中括號代表條件
\w:[0-9||A-z]
\d:[0-9]
\s:空白字符都是要在字符串裏面有的
\b:單詞邊界
$:以什麼結尾
全局:\任意元字符\對應大寫
量詞:
代表數量的詞,每次匹配幾個,
貪婪匹配原則能多就多 0時一般匹配空 n+?非貪婪匹配
n+ //{1,}
n* //{0,}
案例(注意我們在使用字符串相關方法時不是對他自身進行修改)
還有幾個點這邊也是可意會不可言傳啊痛苦咱看幾個案例:
1.-開頭改爲小駝峯
// -開頭形式 小駝峯 var str = "get-element-by-tag-name"; //getElementByTagName var reg = /-(\w)/g; console.log(str.replace(reg , function($,$1){ return $1.toUpperCase(); }));
replace方法第二個方法參數中本身$代表第幾個括號包裹內容因爲是從0開始,我們需要的是(\w)所以爲$1
這種方式也可以實現將兩個名字換位,這是另一種格式,側重於$的代表
2.字符串去重
//字符串去重 var reg = /(\w)\1*/g; var str = "bbaacc"; console.log(str.replace(reg,"$1"));
這邊主要是強調一下\1的用法,\1在正則中代表與上一位相同
3.將一串數字以英文格式輸出(三位一.)
var str = "100000000"; var reg = /(?=(\B)(\d{3})+$)/g; console.log(str.replace(reg,"."));
?=爲反向索引,這邊正則表示以1~多個三個數字結尾的空。