正则表达式(进阶7作业)

题目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("[email protected]"));

题目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));

你可能感兴趣的:(正则表达式(进阶7作业))