一、正則
(1)預(yù)定義字符集
一位數(shù)字\d===[0-9]
一位數(shù)字字母下劃線\w===[0-9A-Za-z_]
一位空格tab鍵?? \s
(2)量詞:規(guī)定出現(xiàn)的數(shù)量(次數(shù))
有明確數(shù)量限制
用{m,n}表示最多出現(xiàn)m次绑莺,最少出現(xiàn)n次
{m,}表示最小出現(xiàn)m次蔓姚,最多不限
{m}表示必須出現(xiàn)m次
沒(méi)有明確限制
?可有可無(wú)? 最多一次
*可有可無(wú)? 多了不限
+至少一次? 最多一次
(3)分組或選擇
( )表示分組
|表示或者
var wrt=prompt('請(qǐng)輸入...');
//可以包含數(shù)字字母下劃線? 6-12位
? ? ? ? ? ? var reg=/^\w{6-12}$/;
? ? ? ? ? ? var result=reg.test(wrt);
? ? ? ? ? ? console.log(result);
string中的正則API
1.search(/正則/);查找一個(gè)關(guān)鍵字所在的位置
找不到返回-1
找到的是關(guān)鍵字的位置,找不到內(nèi)容
? ? ? ? ? ? var str='you can you up';
? ? ? ? ? ? var reg=str.search(/you/);
? ? ? ? ? ? console.log(reg);
2.match(/正則/);? 獲得所有和正則匹配的關(guān)鍵詞 輸出在數(shù)組
g表示輸出所有和正則匹配的關(guān)鍵詞
i表示忽略大小寫
? ? ? ? ? ? var str='good gooD study,day day up';
? ? ? ? ? ? var num=str.match(/d/ig);
? ? ? ? ? ? console.log(num);
3.replace(/正則/,'替換值');
? ? ? ? ? ? var str='no zuo No die';
? ? ? ? ? ? var num=str.replace(/no/ig,'**');
? ? ? ? ? ? console.log(num);
4.split(/正則/); 切割?? 切割完變成數(shù)組
? ? ? ? ? ? var str='no,zuo,no,die';
? ? ? ? ? ? var num=str.split(/,/);
? ? ? ? ? ? console.log(num);
案例:
(1)獲取輸入框和span
? ? ? ? var input=document.querySelector('input');
? ? ? ? var span=document.querySelector('span');
? ? ? ? input.onblur=function(){
? ? ? ? ? ? var reg=/^[0-9A-Za-z_]{6,12}$/;
? ? ? ? ? ? var result=reg.test(input.value);
? ? ? ? ? ? if(result){
span.innerHTML='用戶名格式正確';
? ? ? ? ? ? }else{
span.innerHTML='用戶名格式錯(cuò)誤,請(qǐng)重新輸入';
? ? ? ? ? ? }
? ? ? ? }
(2)身份證號(hào)正則
var wrt=prompt('請(qǐng)輸入您的身份證號(hào)');
? ? ? ? var reg=/^\w{17}[0-9xX]$/;
? ? ? ? var result=reg.test(wrt);
? ? ? ? console.log(result);
手機(jī)號(hào)碼正則
var wrt=prompt('請(qǐng)輸入你的手機(jī)號(hào)');
? ? ? ? var reg=/^(0086|86)?\s*1[356789]\d{9}$/;
? ? ? ? var result=reg.test(wrt);
? ? ? ? console.log(result);
獲得焦點(diǎn)事件:onfocu