题目1: \d,\w,\s,[a-zA-Z0-9],\b,.,*,+,?,x{3},^,$分别是什么?
- \d:匹配数字
- \w:匹配字母数字和下划线
- \s:匹配空格(包括制表符、空格符、断行符等),相等于[\t\r\n\v\f]
- [a-zA-Z0-9]:匹配大小写字母和数字
- \b:匹配单词开头或结尾
- .:匹配除换行符以外的任意字符
- * :重复0次或更多次
- +:重复1次或多次
- ?:重复0次或1次
- x{3}:匹配'xxx'
- ^:匹配字符串的开始 / 如果方括号内的第一个字符是[^],则表示除了字符类之中的字符,其他字符都可以匹配。
- $:匹配字符串的结束
题目2: 写一个函数trim(str),去除字符串两边的空白字符
function trim(str) {
var a = str.replace(/^\s+|\s+$/g,'');
return a
}
var str= ' hrllo '
console.log(trim(str))\\hrllo
题目3: 写一个函数isEmail(str),判断用户输入的是不是邮箱
function isEmail(str) {
var reg = /\w+@\w+\.[a-zA-Z]{2,}/;
return reg.test(str)
}
var str = 'hrll@ohecom';
var str2 = 'hrll@ohe.com';
var str3 = '123123asdfa.cn';
var str4 = '123123@asdfa.cn';
console.log(isEmail(str));//false
console.log(isEmail(str2));//true
console.log(isEmail(str3));//false
console.log(isEmail(str4));//true
题目4: 写一个函数isPhoneNum(str),判断用户输入的是不是手机号
function isPhoneNum(str){
return /^(13[0-9]|15[0-3,5-9]|18[0,2,5-9])\d{8}$/.test(str)
}
var str='18666280516'
var str2='11111111111'
console.log(isPhoneNum(str))//true
console.log(isPhoneNum(str2))//false
题目5: 写一个函数isValidUsername(str),判断用户输入的是不是合法的用户名(长度6-20个字符,只能包括字母、数字、下划线)
function isValidUsername(str){
var reg= /^\w{6,20}$/
return reg.test(str);
}
var str='jgfs'
var str2 = 'sdaeeq'
console.log(isValidUsername(str))// false
console.log(isValidUsername(str2))// true
题目6: 写一个函数isValidPassword(str), 判断用户输入的是不是合法密码(长度6-20个字符,只包括大写字母、小写字母、数字、下划线,且至少至少包括两种)
function isValuePassword(str){
if (!/^\w{6,20}$/.test(str)) {return false;}
if (/^[A-Z]{6,20}$/.test(str)) {return false;}
if (/^[a-z]{6,20}$/.test(str)) {return false;}
if (/^[0-9]{6,20}$/.test(str)) {return false;}
if (/^_{6,20}$/.test(str)) {return false;}
return true;
}
var str = "_______"
console.log(isValuePassword(str));//false
题目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;
str.match(pat);
//输出为[ '"hunger" , hello "world"' ] 因为在默认贪婪模式下尽量匹配长的字符串
//改写
var str = 'hello "hunger" , hello "world"';
var pat = /".*?"/g; //加?变为非贪婪模式
str.match(pat);
网友评论