RegExp對象同樣有自己操作的API,比如我們常用的test陡蝇,exec翰灾。
RegExp對象 API:
- 驗證: var bool=reg.test(str)
用正則表達(dá)式reg檢查一個字符串str的格式是否符合要求。- 返回值: true/false凸丸;
- 問題: 正則表達(dá)式拷邢,默認(rèn)只要找到符合規(guī)則的內(nèi)容,就返回true屎慢,不要求從頭到尾完整匹配——所以瞭稼,也有人用reg.test()做查找關(guān)鍵詞;
- 解決: 今后凡是驗證必須前加^后加$腻惠,表示從頭到尾完整匹配环肘;
var input=prompt("請輸入密碼");
var reg=/^\d{6}$/;
if(reg.test(input)){
document.write(`<h1 style="color:green">驗證通過!</h1>`)
}else{
document.write(`<h1 style="color:red">密碼格式不正確集灌!</h1>`)
}
- 查找敏感詞:** reg.exec(str) **
- 什么是: 查找str中每個符合reg要求的敏感詞的內(nèi)容和位置;
- 何時: 只要既查找每個關(guān)鍵詞的內(nèi)容悔雹,又查找每個關(guān)鍵詞的位置
- 如何:
var arr=reg.exec(str); - 執(zhí)行過程:
1、每次只能查找一個敏感詞欣喧;
2腌零、返回: arr: [ 0: "敏感詞", index: 位置i ] ——同match不加g的情況;
3唆阿、反復(fù)調(diào)用reg.exec可自動向后找益涧!
4、找不到驯鳖,返回null闲询;
var str="明明喜歡我久免,卻不告訴我。別理我扭弧,我想靜靜阎姥。靜靜是誰?你先告訴我鸽捻,明明是誰丁寄?";
var reg=/明明|靜靜/g;
do {//先嘗試找一次
var arr=reg.exec(str);
if(arr!=null)//如果找到,才輸出
document.write(`在位置 ${arr.index}, 發(fā)現(xiàn)敏感詞:${arr[0]}<br>`);
} while (arr!=null);//如果找到泊愧,才可以繼續(xù)