美文网首页
进阶任务7(主线任务):正则表达式

进阶任务7(主线任务):正则表达式

作者: _小黑 | 来源:发表于2017-12-26 16:25 被阅读25次

    题目1: \d,\w,\s,[a-zA-Z0-9],\b,.,*,+,?,x{3},^,$分别是什么?
    \d 表示数字
    \w 表示字母、数字和下划线
    \s 表示空白符
    [a-zA-Z0-9] 表示a-z A-Z 0-9 这些字符中的任意一个
    \b 表示单词边界
    . 表示除了回车符和换行符之外的所有字符
    * 表示出现零次或多次(任意次)
    + 表示出现一次或多次
    ?表示出现零次或一次
    x{3} 表示x出现3次
    ^ 表示以xxx开头
    $ 表示以xxx结尾

    题目2: 写一个函数trim(str),去除字符串两边的空白字符

    function trim(str){
      return str.replace(/^\s+|\s+$/g,"");
    }
    

    题目3: 写一个函数isEmail(str),判断用户输入的是不是邮箱

    function isEmail(str){
    var reg =  /^\w+@\w+/;
     return reg.test(str);
    }
    isEmail("w@ss.com");
    

    题目4: 写一个函数isPhoneNum(str),判断用户输入的是不是手机号

    function isPhoneNum(str){
      var reg = /^1\d{10}$/
      return reg.test(str);
    }
    isPhoneNum("12222222222");
    

    题目5: 写一个函数isValidUsername(str),判断用户输入的是不是合法的用户名(长度6-20个字符,只能包括字母、数字、下划线)

    function isValidUsername(str){
      var reg = /\w{6,20}$/;
      return reg.test(str);
    }
    isValidUsername("aiyizhen_");
    

    题目6. 写一个函数isValidPassword(str), 判断用户输入的是不是合法密码(长度6-20个字符,只包括大写字母、小写字母、数字、下划线,且至少至少包括两种)

    function isValidPassword(str){
      if(!/^\w{6,20}$/) return false;
      if(/^[a-z]{6,20}$/) return false;
      if(/^[A-Z]{6,20}$/) return false;
      if(/^\d{6,20}$/) return false;
      if(/_{6,20}$/) return false;
        return true;
    }
    isValidPassword("jfakjgljalgj");
    

    题目7: 写一个正则表达式,得到如下字符串里所有的颜色

    var re = /*正则...*/
    var subj = "color: #121212; background-color: #AA00ef; width: 12px; bad-colors: f#fddee "
    console.log( subj.match(re) )  // ['#121212', '#AA00ef']
    
    var re = /#[a-zA-Z0-9]{6}/;
    var subj = "color: #121212; background-color: #AA00ef; width: 12px; bad-colors: f#fddee "
    console.log( subj.match(re) )  // ['#121212', '#AA00ef']
    
    1. 下面代码输出什么? 为什么? 改写代码,让其输出['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);    //["hunger", "world"]
    
    //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);    //["hunger", "world"]
    

    相关文章

      网友评论

          本文标题:进阶任务7(主线任务):正则表达式

          本文链接:https://www.haomeiwen.com/subject/vfzdgxtx.html