1.\d,\w,\s,[a-zA-Z0-9],\b,.,*,+,?,x{3},^,$分别是什么?
- \d:数字
- \w:单词字符、字母、数字下划线
- \s:空白字符
- [a-zA-Z0-9]:大小写字母和数字
- \b:单词边界
- .:所有字符
- *:出现任意次
- +:至少出现一次
- ?:最多出现一次
- x{3}:x字符出现3次
- ^:开头
- $:结尾
2.写一个函数trim(str),去除字符串两边的空白字符
function trim (str)
{
return str.replace(/^\s+|\s+$/g, '');
}
console.log(trim(' asdad 13 '));
3.写一个函数isEmail(str),判断用户输入的是不是邮箱
function isEmail (str)
{
var reg = /^\w+@[\w.-]+$/;
return reg.test(str);
}
console.log(isEmail('asdad@13.commands'));
4.写一个函数isPhoneNum(str),判断用户输入的是不是手机号
function isPhoneNum (str)
{
var reg = /^(\+86-)?1[356789]\d{9}/;
return reg.test(str);
}
console.log(isPhoneNum('17620378779'));
5.写一个函数isValidUsername(str),判断用户输入的是不是合法的用户名(长度6-20个字符,只能包括字母、数字、下划线)
function isValidUsername (str)
{
var reg = /\w{6,20}/;
return reg.test(str);
}
console.log(isValidUsername('n313893254'));
6.写一个函数isValidPassword(str), 判断用户输入的是不是合法密码(长度6-20个字符,只包括大写字母、小写字母、数字、下划线,且至少至少包括两种)
function isValidPassword (str)
{
if (!(/\w{6,20}/.test(str)))
{
return false;
}
var cond = 0;
if (/[A-Z]/.test(str))
{
cond++;
}
if (/[a-z]/.test(str))
{
cond++;
}
if (/[0-9]/.test(str))
{
cond++;
}
if (/[_]/.test(str))
{
cond++;
}
if (cond >= 2)
{
return true;
}
else
{
return false;
}
}
console.log(isValidPassword('n313893254'));
7.写一个正则表达式,得到如下字符串里所有的颜色
var re = /#[\dabcdef]{6}/gi
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""]
var str = 'hello "hunger" , hello "world"';
var pat = /"[^"]*"/g;
console.log(str.match(pat));