美文网首页
正则表达式

正则表达式

作者: 1w1ng | 来源:发表于2017-09-05 15:54 被阅读0次

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

    • \d:数字字符
    • \w:单词字符,字母、数字下划线
    • \s:空白符
    • [a-zA-Z0-9]:匹配任意字母和数字
    • \b:单词边界
    • .:除了回车符和换行符之外的所有字符
    • *:出现零次或多次
    • +:出现一次或多次(至少出现一次)
    • ?:出现零次或一次(最多出现一次)
    • x{3}:重复三次x
    • ^: 以xxx开头
    • $:以xxx结尾

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

    function trim(str){
      newstr = str.replace(/^\s+|\s+$/g,'');
      return newstr
    }
    var a = '   hello world    '
    console.log(trim(a))
    

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

    function isEmail(str){
      newstr = /^[a-zA-Z0-9_-]+@[a-zA-Z0-9]+(\.[a-zA-Z0-9]+)+$/g
      return newstr.test(str)
    }
    console.log(isEmail('ab1cd')) //false
    console.log(isEmail('he2llo@qqcom')) //false
    console.log(isEmail('wor3ld@123.cn')) //true
    console.log(isEmail('12324sdd-_@asd.ccc')) //true
    

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

    function isPhoneNum(str){
      newstr = /^1\d{10}$/g
      return newstr.test(str)
    }
    console.log(isPhoneNum('110')) //false
    console.log(isPhoneNum('123555566666')) //false
    console.log(isPhoneNum('15488889999')) //true
    

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

    function isValidUsername(str){
      newstr = /^[0-9a-zA-Z|_]{6,20}$/g
      return newstr.test(str)
    }
    console.log(isValidUsername('12345')) //false
    console.log(isValidUsername('helloworld_')) //true
    console.log(isValidUsername('!helloworld')) //false
    console.log(isValidUsername('helloWorld')) //true
    

    什么是贪婪模式和非贪婪模式

    • 贪婪模式下,正则表达式会尽可能多的重复匹配字符
    '123456789'.match(/\d{2,3}/g); //(3) ["123", "456", "789"]
    '123456789'.match(/\d{3,4}/g); //(3) ["1234", "5678"]
    
    • 非贪婪模式,让正则表达式尽可能少的匹配,也就是说一旦成功匹配不再继续尝试,在量词后加上?即可
    '123456789'.match(/\d{2,3}?/g); //(4) ["12", "34", "56", "78"]
    '123456789'.match(/\d{3,4}?/g); //(3) ["123", "456", "789"]
    

    相关文章

      网友评论

          本文标题:正则表达式

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