\d滴某,\w,\s,[a-zA-Z0-9],\b,.,,+,?,x{3},^$分別是什么?*
\d 代表匹配[0-9]的數(shù)字
\w 代表匹配[a-zA-Z0-9_]
\s 代表匹配\t\n\r在內(nèi)的一些空字符
[a-zA-Z0-9] 匹配數(shù)字0-9钮热、A-Z(不區(qū)分大小寫)
\b 邊界
. 匹配任意一個(gè)字符
*重復(fù)出現(xiàn)0次或多次類似{0,}
+ 至少出現(xiàn)一次 類似{1,}
? 至多出現(xiàn)一次 類似{0,1}
x{3},匹配連續(xù)出現(xiàn)3次x 的字符
^$ 匹配除了$以外的字符
貪婪模式和非貪婪模式指什么?
貪婪模式是:正則表達(dá)式话原,趨向于匹配到符合匹配結(jié)果長(zhǎng)度最長(zhǎng)的字符瞳购。
一般默認(rèn)是貪婪模式
非貪婪模式是:正則表達(dá)式粘优,趨向匹配到這個(gè)結(jié)果就好睹栖,盡可能少的匹配字符。
設(shè)置非貪婪模式后面加?
杨赤;
例如:
var regexp=/123.*/g
var regexp1=/123.*?/g
var arr="123 1234 12345 123333";
console.log(arr.match(regexp));//["123 1234 12345 123333"]
console.log(arr.match(regexp1));//["123", "123", "123", "123"]
代碼題
寫一個(gè)函數(shù)trim(str)敞斋,去除字符串兩邊的空白字符
function trim(str){
//去除左邊的字符串
var left=new RegExp("^\\s*","g");
// var left=/^\s*/g;
var right =new RegExp("\\s*$","g");
//去除右邊的字符串
// var right=/\s*$/g;
var arr=str.replace(left,"");
console.log("去除后:"+arr.replace(right,""));
return str;
}
console.log("未開始前"+" 123456s f a f hkjh ");
var str=" 123456s f a f hkjh ";
trim(str);
使用實(shí)現(xiàn) addClass(el, cls)、hasClass(el, cls)望拖、removeClass(el,cls)渺尘,使用正則
//使用實(shí)現(xiàn) addClass(el, cls)、hasClass(el, cls)说敏、removeClass(el,cls)鸥跟,使用正則
//提示: el為dom元素,cls為操作的class盔沫, el.className獲取el元素的class
//1医咨、addClass:為指定的dom元素添加樣式。
//2架诞、removeClass:刪除指定dom元素的樣式拟淮。
//3、toggleClass:如果存在(不存在)谴忧,就刪除(添加)一個(gè)樣式很泊。
//4、hasClass:判斷樣式是否存在沾谓。
function hasClass(el,cls){
var ele=new RegExp("\\b"+cls+"\\b");
if (ele.test(el)){
return "存在樣式cls";
}else{
return "不存在樣式cls";
}
}
function toggleClass(el,cls){
var ele=new RegExp("\\b"+cls+"\\b");
if (hasClass(el,cls)){
(el.className+"").replace(cls,"");
}else{
el.className+=""+cls
}
}
function removeClass(el.cls){
var ele=new RegExp("\\b"+cls+"\\b");
if(hasClass(el,cls)){
(el.className+"").replace(cls,"");
}
}
寫一個(gè)函數(shù)isEmail(str)委造,判斷用戶輸入的是不是郵箱
function isEmail(str){
// var rag=new RegExp("^\w{6,18}@\w{2,4}\\.[cn]\w{1,2}$");
// var rag=/^\w{6,18}@\w{2,4}\.(c|n).+$/g;
var rag=new RegExp("^\\w{6,18}@\\w{2,4}\\.[cn].+$")
if(rag.test(str)==true){
console.log("您注冊(cè)的郵箱符合規(guī)范");
}else{
console.log("郵件地址需由字母、數(shù)字或下劃線組成,請(qǐng)重新注冊(cè)")
}
}
var a="liruihao@163.net";
var b="lirui_ck@aaaa.saasda";
isEmail(a);
isEmail(b);
寫一個(gè)函數(shù)isPhoneNum(str)均驶,判斷用戶輸入的是不是手機(jī)號(hào)
function isphoneNum(str){
var reg=/^1[34578]\d{9}$/;
if(reg.test(str)){
console.log("輸入的號(hào)碼為手機(jī)號(hào)");
}else{
console.log("請(qǐng)輸入正確的手機(jī)號(hào)");
}
}
str="123456678";
str1="13972023324";
str2="152311111111";
isphoneNum(str);//請(qǐng)輸入正確的手機(jī)號(hào)
isphoneNum(str1);//輸入的號(hào)碼為手機(jī)號(hào)
isphoneNum(str2);//請(qǐng)輸入正確的手機(jī)號(hào)
寫一個(gè)函數(shù)isValidUsername(str)昏兆,判斷用戶輸入的是不是合法的用戶名(長(zhǎng)度6-20個(gè)字符,只能包括字母妇穴、數(shù)字爬虱、下劃線)
function isValidUsername(str){
var reg=/^[\w]{6,20}$/
if (reg.test(str)){
console.log("符合標(biāo)準(zhǔn)");
}else{
console.log("不符合標(biāo)準(zhǔn)");
}
}
str="1231231231231313123123123"
isValidUsername(str);
判斷用戶輸入的是不是合法密碼(長(zhǎng)度6-20個(gè)字符隶债,包括大寫字母、小寫字母跑筝、數(shù)字死讹、下劃線至少兩種) -->
<script>
function isValidPassword(str){
//全部為數(shù)字,(大小寫)字母曲梗,下劃線回俐,
var reg=/^[a-z]{6,20}$|^[A-Z]{6,20}$|^[0-9]{6,20}$|^_{6,20}$/
if(reg.test(str)){
console.log("輸入密碼不合法");
}else{
console.log("輸入密碼合法");
}
}
var str="aaaaaaaaaaaaaa";
var str1="liruihaodA"
isValidPassword(str);
isValidPassword(str1);
寫一個(gè)正則表達(dá)式,得到如下字符串里所有的顏色(#121212)
var re = /#[A-Fa-f0-9]{6}/g;
var subj = "color: #121212; background-color: #AA00ef; width: 12px; bad-colors: f#fddee #fd2 "
console.log( subj.match(re) ) // #121212,#AA00ef
下面代碼輸出什么? 為什么? 改寫代碼稀并,讓其輸出hunger, world
//下面代碼輸出什么? 為什么? 改寫代碼,讓其輸出hunger, world.
var str = 'hello "hunger" , hello "world"';
var pat = /".*"/g;
console.log(str.match(pat)); //'"hunger" , hello "world"'
//輸出'"hunger" , hello "world"'
///".*"/g 表示匹配"." 雙引號(hào)中匹配任意非轉(zhuǎn)位符单默,默認(rèn)貪婪模式,即匹配'"hunger" , hello "world"'
var reg=/"\w{5}"?/g;
console.log(str.match(reg));
補(bǔ)全如下正則表達(dá)式碘举,輸出字符串中的注釋內(nèi)容. (可嘗試使用貪婪模式和非貪婪模式兩種方法)
str = '.. <!-- My -- comment \n test --> .. <!----> .. <!-- asdsadasd<>安大廈--> '
re = /<!--[^\r\.]*-->/g
re2 = /<!--[^\r]*?-->/g
console.log(str.match(re) );// '<!-- My -- comment \n test -->', '<!---->'
console.log(str.match(re2) );//"<!-- My -- comment ? test -->", "<!---->", "<!-- asdsadasd<>安大廈-->"
補(bǔ)全如下正則表達(dá)式
var re = /<[^<>]+>/g//貪婪模式
var re1=/<[^<>]+?>/g//非貪婪模式.
var str = '<> <a href="/"> <input type="radio" checked> <b>';
console.log(str.match(re)); // '<a href="/">', '<input type="radio" checked>', '<b>'