1.寫一個(gè)函數(shù)trim(str)踊餐,去除字符串兩邊的空白字符
function time(str){
return str.replace(/^\s+|\s+$/g,"")
}
var str=" abc degh ilkm "
console.log(time(str))//"abc degh ilkm"
2.使用實(shí)現(xiàn) addClass(el,cls)hasClass(el,cls)removeClass(el,cls)伙判,使用正則
<div id="div1" class="color border"></div>
<script type="text/javascript">
var div=document.getElementById("#div1");
function hasClass(el,cls){
var reg=new RegExp("(\\s|^)"+cls+"(\\s|$)","g")
// (\\s表示空白字符)
return reg.test(el.className)
}
function addClass(el,cls){
if(!hasClass(el,cls)){
el.className+=" "+cls
}
}
function removeClass(el,cls){
if(hasClass(el,cls)){
el.className=el.className.replace(cls,"").replace(/\s{2,}/g,"")
}
}
hasClass(div1,"color")//true
hasClass(div1,"bg-color")//false
addClass(div1,"fontsize")//undefined
div1.className//"color border fontsize"
removeClass(div1,"color")//undefined
div1.className//"border fontsize"
</script>
3.寫一個(gè)函數(shù)isEmail(str),判斷用戶輸入的是不是郵箱
function isEmail(str){
var reg=/^(\w)+(\.\w+)*@(\w)+((\.\w+)+)$/;
if (reg.test(str)) {
return str
}else{
alert("請(qǐng)輸入正確的郵箱格式")
}
}
isEmail("aaa")//"請(qǐng)輸入正確的郵箱格式"
isEmail("2270099149@qq.com")//"220099149@qq.com"
4.寫一個(gè)函數(shù)isPhoneNum(str)形娇,判斷用戶輸入的是不是手機(jī)號(hào)
function isPhoneNum(str){
var reg=/^1[0-9]{10}$/;
if (reg.test(str)) {
return str
}else{
alert("請(qǐng)輸入正確的手機(jī)號(hào)")
}
}
var str="111100001111"
isPhoneNum(str)//輸出:"請(qǐng)輸入正確的手機(jī)號(hào)"
var str="13656576666"
isPhoneNum(str)//輸出:"13656576666"
5.寫一個(gè)函數(shù)isValidUsername(str),判斷用戶輸入的是不是合法的用戶名(長度6-20個(gè)字符,只能包括字母析砸、數(shù)字、下劃線)
function isValidUsername(str){
var reg=/^\w{6,20}$/
if (reg.test(str)) {
return str
}else{
alert("請(qǐng)輸入正確的用戶名")
}
}
6.寫一個(gè)函數(shù)isValidPassword(str), 判斷用戶輸入的是不是合法密碼(長度6-20個(gè)字符垮庐,只包括大寫字母松邪、小寫字母、數(shù)字哨查、下劃線逗抑,且至少至少包括兩種)
function isValidPassword(str){
var reg=/^\w{6,20}$/;
var reg1=/(^[a-z]+$)|(^[A-Z]+$)|(^[0-9]+$)|(^_+$)/;
if (reg.test(str)) {
if(reg1.test(str)){
alert("親,請(qǐng)輸入正確的密碼(字母寒亥、數(shù)字邮府、下劃線,至少包含其中兩種)")
}else{
alert("設(shè)置成功");
}
}else{
alert("親护盈,請(qǐng)輸入正確的密碼(長度6-20)")
}
}
7.寫一個(gè)正則表達(dá)式挟纱,得到如下字符串里所有的顏色(#121212)
var re = /#[e-fA0-2]{6}/g;
var subj = "color: #121212; background-color:
#AA00ef; width: 12px; bad-colors: f#fddee #fd2 ";
alert( subj.match(re) ) // #121212,#AA00ef
8.下面代碼輸出什么? 為什么? 改寫代碼,讓其輸出hunger
, world.
var str = 'hello "hunger" , hello "world"';
var pat = /".*"/g;
str.match(pat);//[""hunger" , hello "world""]
//這是因?yàn)?匹配除換行和行結(jié)束符外的任意單個(gè)字符腐宋,
//而*在滿足條件下會(huì)盡可能多的匹配紊服,若要輸出hunger,world,只要改寫成非貪婪模式即可
var str = 'hello "hunger" , hello "world"';
var pat = /".*?"/g;
str.match(pat);//[""hunger"", ""world""]
9.補(bǔ)全如下正則表達(dá)式,輸出字符串中的注釋內(nèi)容. (可嘗試使用貪婪模式和非貪婪模式兩種方法)
-
貪婪模式
str = '.. <!-- My -- comment \n test --> .. <!----> .. ' re = /<!--[\w\W]*?-->/g str.match(re) // '<!-- My -- comment \n test -->', '<!---->'
-
非貪婪模式
str = '.. <!-- My -- comment \n test --> .. <!----> .. ' re = /<!--[^<]*-->/g str.match(re) // '<!-- My -- comment \n test -->', '<!---->'
10.補(bǔ)全如下正則表達(dá)式
var re = /<[a-z][\w\W]*?>/g
var str = '<> <a href="/"> <input type="radio" checked> <b>'
str.match(re) // '<a href="/">', '<input type="radio" checked>', '<b>'