1: \d,\w,\s,[a-zA-Z0-9],\b,.,*,+,?,x{3},^,$分别是什么?
\d: 数字字符相当于[0-9]
\w: 数字字符、字母字符、相当于 [A-Za-z0-9]
\s: 空白符 相等于[\t\n\x0B\f\r]
[a-zA-Z0-9] : 匹配a到z大小写字符或数字字符任意一个字符
\b: 单词边界
.: 匹配除了回车符和换行符之外的所有字符 [^\r\n]
*: 出现零次或多次(任意次)
+: 出现一次或多次(至少出现一次)
?: 有0个或者1个字符(最多出现一次)
x{3}: 出现3次x
^: 匹配以xxx开头的字符
$: 匹配以xxx结尾的字符
2: 写一个函数trim(str),去除字符串两边的空白字符
function trim(str){
return str.replace(/(^\s+)?(\s+$)?/g,"");
}
str="\r dfihdihajkc \n";
console.log(trim(str));
3: 写一个函数isEmail(str),判断用户输入的是不是邮箱
function isEmail(str){
var email=/(^\s+)?\w+@[a-z0-9]{2,8}\.[a-z]+(\s+$)?/g;
return email.test(str);
}
str=" 1839eqw9@qq.com ";
console.log(isEmail(str));//true
4: 写一个函数isPhoneNum(str),判断用户输入的是不是手机号
function isPhoneNum(str){
var phone=/(^\s+)?1[34578]\d{9}(\s+$)?/g;
return phone.test(str);
}
str=" 13213920325 ";
console.log(isPhoneNum(str));//true
5: 写一个函数isValidUsername(str),判断用户输入的是不是合法的用户名(长度6-20个字符,只能包括字母、数字、下划线)
function isValidUsername(str){
var name=/(^\s+)?\w{6,20}(\s+$)?/g;
return name.test(str);
}
str=" 1321392_03254 ";
console.log(isValidUsername(str));//true
6: 写一个函数isValidPassword(str), 判断用户输入的是不是合法密码(长度6-20个字符,只包括大写字母、小写字母、数字、下划线,且至少至少包括两种)
function isValidPassword(str){
var password=/(^\s+)?\w{6,20}(\s+$)?/g;
if(password.test(str)===true){
var i=0;
if(/[0-9]+/.test(str)) i++;
if(/[a-z]+/.test(str)) i++;
if(/[A-Z]+/.test(str)) i++;
if(/_+/.test(str)) i++;
if(i>=2) return true;
}
return false;
}
str=" hin9xx3_A ";
console.log(isValidPassword(str));
7: 写一个正则表达式,得到如下字符串里所有的颜色
var re = /#[0-9a-fA-F]{6}/g;
var subj = "color: #121212; background-color: #AA00ef; width: 12px; bad-colors: f#fddee "
console.log( subj.match(re) ) // ['#121212', '#AA00ef']
8: 下面代码输出什么? 为什么? 改写代码,让其输出[""hunger"", ""world""].
var str = 'hello "hunger" , hello "world"';
var pat = /".*"/g;
console.log(str.match(pat));//[""hunger" , hello "world""]
输出[""hunger" , hello "world""] ---这是因为.是匹配任何东西,*是出现任意次
var str = 'hello "hunger" , hello "world"';
var pat = /".*?"/g;
console.log(str.match(pat));//[""hunger"", ""world""]
使用实现 addClass(el, cls)、hasClass(el, cls)、removeClass(el,cls)
var el = {};
el.className = 'hunger valley_hunger';
function addClass(el,cls){
var reg = new RegExp( '(\\s|^)' + cls + '(\\b|$)','g');
if(!reg.test(el.className)){
return el.className + ' ' + cls;
}else{
return null;
}
}
addClass(el,'dddd');
function hasClass(el,cls){
var reg = new RegExp( '(\\s|^)' + cls + '(\\b|$)','g');
return reg.test(el.className);
}
function removeClass(el,cls){
var reg = new RegExp( '(\\s|^)' + cls + '(\\b|$)','g');
if(reg.test(el.className)){
return el.className.replace(reg,'');
}else{
return el.className;
}
}
console.log(removeClass(el,'dddd'));