题目1: \d,\w,\s,[a-zA-Z0-9],\b,.,*,+,?,x{3},^,$分别是什么?
- \d
表示一个数字字符。 - \w
表示一个单词字符,包括字母,数字,下划线。 - \s
表示一个空白符。
包括:
空格符 (space character)
制表符 (tab character)
回车符 (carriage return character)
换行符 (new line character)
垂直换行符 (vertical tab character)
换页符 (form feed character)
相当于[\t\n\x0B\f\r] - [a-zA-Z0-9]
表示一个大小写字母或数字。 - \b
表示一个单词边界。 - .
表示一个任意字符。
表示出现零次或多次(任意次)。
表示出现一次或多次(至少一次)。
- ?
表示出现零次或一次(最多一次)。 - x{3}
表示x出现三次。 - ^
表示以xxxxxx为开头。 - $
表示以xxxxxx为结尾。
题目2: 写一个函数trim(str),去除字符串两边的空白字符
function trim(str){
return str.replace(/^\s+|\s+$/g,"");
}
console.log(trim(" dsgrgercf "));
题目3: 写一个函数isEmail(str),判断用户输入的是不是邮箱
function isEmail(str){
return /^[\w.-]+@[\w.-]+$/.test(str);
}
console.log(isEmail("franky_feiyu@126.com"));
题目4: 写一个函数isPhoneNum(str),判断用户输入的是不是手机号
function isPhoneNum(str){
return /^(\+86-)?1[356789]\d{9}$/.test(str);
}
console.log(isPhoneNum("+86-13345678908"));
题目5: 写一个函数isValidUsername(str),判断用户输入的是不是合法的用户名(长度6-20个字符,只能包括字母、数字、下划线)
function isValidUsername(str){
return /^\w{6,20}$/.test(str);
}
console.log(isValidUsername("franky_feiyu"));
题目6: 写一个函数isValidPassword(str), 判断用户输入的是不是合法密码(长度6-20个字符,只包括大写字母、小写字母、数字、下划线,且至少至少包括两种)
function isValidPassword(str){
if(str.length<6 || str.length>20 || /\W/.test(str)==true){
return false;
}
if(/^[0-9]+$/.test(str)==true) return false;
if(/^[a-z]+$/.test(str)==true) return false;
if(/^[A-Z]+$/.test(str)==true) return false;
if(/^_+$/.test(str)==true) return false;
return true;
}
console.log(isValidPassword("qwer1234_a"));
题目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 = /"\w*"/g; //.修改为\w,避免逗号被匹配
console.log(str.match(pat));