美文网首页
前端面试题之JavaScript(六)

前端面试题之JavaScript(六)

作者: 庄海鑫 | 来源:发表于2017-09-18 14:31 被阅读0次

    题目1: \d,\w,\s,[a-zA-Z0-9],\b,.,*,+,?,x{3},^,$分别是什么?

    字符 含义
    \d [0-9] 数字字符
    \w [a-zA-Z_0-9] 单词字符,字母、数字下划线
    \s [\t\n\x0B\f\r] 空白符
    [a-zA-Z0-9] 字母和数字
    \b 单词边界
    . (小数点)匹配除换行符之外的任何单个字符。
    * 出现零次或多次(任意次)
    出现零次或一次(最多出现一次)
    x{3} x出现了三次
    ^ 以xxx开头
    $ 以xxx结尾

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

        function trim(str){
          var reg=/^\s+|\s+$/g;
          var result;
          result=str.replace(reg,"");
          console.log(result);
        }
        trim("I like coding ");
        trim("     I like coding     ");
    

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

        function isEmail(str){
          var reg=/^[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-zA-Z0-9]+$/;
          var result;
          result=reg.test(str);
          console.log(result);
        }
        isEmail('649308293@qq.com');
        isEmail('649308293@qq.com@gmail.com');
        isEmail('649308 293@ qq.com');
        isEmail('649308 293@ qq.com');
    

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

       function isPhoneNum(str){
              var reg=/^1[3578]\d{9}$/;
              var result;
              result=reg.test(str);
              console.log(result);
             
            }
            isPhoneNum('13604903685');
            isPhoneNum('136049036851');
            isPhoneNum('136049036852');
    

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

      function isValidUsername(str){
              var reg=/^\w{6,20}$/;
              var result;
              result=reg.test(str);
              console.log(result);
             
             
            }
            isValidUsername('zhuanghaixin');
            isValidUsername('13_sakfjhanfkankd604903685');
            isValidUsername('13 6049036851');
            isValidUsername('13604庄海鑫9036852');
    

    题目6: 什么是贪婪模式和非贪婪模式

    • 量词在默认下是尽可能多的匹配的
    '123456789'.match(/\d{3,5}/g); //["12345", "6789"]
    
    • 让正则表达式尽可能少的匹配,也就是说一旦成功匹配不再继续尝试,做法很简单,在量词后加上?即可
    '123456789'.match(/\d{3,5}?/g); //["123", "456", "789"]
    

    相关文章

      网友评论

          本文标题:前端面试题之JavaScript(六)

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