/d 是指[0~9]的數(shù)字與,之相反的是/D;
/w 是指"字母數(shù)字下劃線"彻亲,與之相反的是/W
/s 是指"空格,換行蛤迎,tab肾请,回車",與之相反的是/S
![[a-zA-Z0-9] 是指所有大小寫字母和數(shù)字].png](http://upload-images.jianshu.io/upload_images/2332505-604f6e5bf5646fa3.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
\b 是指單詞邊界拦英,與之相反的是/B
. 點(diǎn)是指任意字符了可以說(shuō)取试,除去結(jié)束和換行符
* 放在某些條件后面,做0個(gè)或多個(gè)匹配 比如
加號(hào)是貪婪匹配前面的踊谋,如圖
問號(hào).png
花括號(hào).png
箭頭開始符號(hào).png
$結(jié)束符號(hào).png
代碼:寫一個(gè)函數(shù)trim(str)球订,去除字符串兩邊的空白字符
function trim(str) {
let reg = /^\s*|\s$/g;
return str.replace(reg, '');
}
let diy_str = ' happy hacking ';
trim(diy_str);
代碼:寫一個(gè)函數(shù)isEmail(str)后裸,判斷用戶輸入的是不是郵箱
function isEmail(str) {
let reg = /^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/;
return bool = reg.test(str);
}
isEmail('pengyaokang@qq.com');
代碼:寫一個(gè)函數(shù)isPhoneNum(str),判斷用戶輸入的是不是手機(jī)號(hào)
function isPhoneNum(str) {
let reg = /^1[35678]\d{9}$/;
return bool = reg.test(str);
}
isPhoneNum('18658670012')
代碼:驗(yàn)證賬號(hào),長(zhǎng)度6-20個(gè)字符冒滩,只能包括字母微驶、數(shù)字、下劃線)
function isValidUsername(str) {
let reg = /^\w{6,20}$/;
let bool = reg.test(str);
console.log(bool);
}
isValidUsername('saffeiowjfi')
代碼:長(zhǎng)度6-20個(gè)字符开睡,只包括大寫字母因苹、小寫字母、數(shù)字篇恒、下劃線扶檐,且至少至少包括兩種)
function isValidPassword(str) {
if (/\W/.test(str)) {
return false;
} else {
if (/^\w{6,20}$/.test(str)) {
if (/(^[0-9]+$)|(^[a-z]+$)|(^[_]+$)/g.test(str))
{
return false;
}
else
{
return true;
}
}
else
{
return false;
}
}
}
console.log(isValidPassword('saffeioAwj3fi'))
代碼:寫一個(gè)正則表達(dá)式,得到如下字符串里所有的顏色
let subj = "color: #121212; background-color: #AA00ef; width: 12px; bad-colors: f#fddee ";
function colorReg(str) {
let reg = /(#[0-9a-fA-f]{3}) |(#[0-9a-fA-f]{6})/g;
// /#[0-9a-fA-F]{6}/g胁艰;
console.log(str.match(reg));
}
colorReg(subj)
代碼:下面代碼輸出什么? 為什么? 改寫代碼款筑,讓其輸出['hunger', 'world'].
let str = 'hello "hunger" , hello "world"';
let pat = /".+?"/g;
console.log(str.match(pat))