美文网首页
正则表达式

正则表达式

作者: 山门龙龙 | 来源:发表于2017-06-28 08:27 被阅读0次

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

  • 字符类:
    \d是数字。\w是一个单词,里面可以是字母、数字、下划线。\s是空白符。[a-zA-Z0-9]是括号内的任意一个字符。\b是单词边界。. 是除了\n和\r的任意字符。
  • 量词:
    *是任意次数。+ 是最少一次。?是最多一次。x{3}表示3个x,括号里面是次数。
  • 边界:
    在[123]内表示取反,除了123之外的其它任意字符。在其它地方就表示以他后面的字符开头。$表示以它前面的字符结尾。
  • 转义:
    另外比较特殊的一类就是转义字符,比如你想匹配字符 “ . ” ,就得使用转义字符 “ \ . ”。

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

第一种利用字符串转换:

    var str = ' abc  abcd  ';
    function trim(str) {
        str = str.replace(/\s+/,'');                               //去掉开头的空白字符串
        str = str.split('').reverse().join('').replace(/\s+/,'');  //去掉结尾的空白字符串
        return str;
    }
    console.log(trim(str));

第二种直接使用正则:

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

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

    function isEmail(str) {
        var reg = /\w+@\w+[.]{1}\w+/g;
        return reg.test(str);
    }

另外还在网上找了一个比较正规的正则表达式:
^[A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(.[a-zA-Z0-9_-]+)+$

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

    function isPhoneNum(str) {
        var reg = /^1\d{10}$/g;
        return console.log(reg.test(str));
    }
    var str = '13512345678';
    var str2 = '135abcdefgh';
    isPhoneNum(str);
    isPhoneNum(str2);

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

    function isValidUsername(str) {
        var reg = /\w{6,20}/g;
        return console.log(reg.test(str));
    }
    var str = '12345',
        str2 = 123456;
    isValidUsername(str);
    isValidUsername(str2);

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

    function isValidPassword(str) {
        var reg = /\w{6,20}/g,
            reg2 = /[A-Z]{6,20}/g,
            reg3 = /[a-z]{6,20}/g,
            reg4 = /[0-9]{6,20}/g,
            reg5 = /_{6,20}/g;
        if(reg.test(str)){
            if(reg2.test(str) || reg3.test(str) || reg4.test(str) || reg5.test(str)){
                return false;
            }else{
                return true;
            }
        }else{
            return false;
        }
    }
    console.log(isValidPassword('aaaa'));
    console.log(isValidPassword('AAAAAAA'));
    console.log(isValidPassword('11111111'));
    console.log(isValidPassword('_______'));
    console.log(isValidPassword('sdf465'));

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

    var re = /#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})(?=;)/g;
    var subj = "color: #121212; background-color: #AA00ef; width: 12px; bad-colors: f#fddee ";
    console.log(subj.match(re));  // ['#121212', '#AA00ef']

8.下面代码输出什么? 为什么? 改写代码,让其输出[""hunger"", ""world""].

  • 输出["hunger" , hello "world"]。match如果匹配到了返回一个数组,否则返回NULL。又因为正则表达式默认为贪婪模式,该正则表达式没有规定匹配范围,所以最大化范围进行匹配,得到上述结果。
  • 改写之后的代码如下:
    var str = 'hello  "hunger" , hello "world"';
    var pat =  /".{1,6}"/g;
    str.match(pat);

相关文章

  • Linux命令行与Shell脚本编程大全-shell正则表达式

    本章内容: 定义正则表达式 了解基本正则表达式 扩展正则表达式 创建正则表达式 定义正则表达式 正则表达式是你定义...

  • 正则相关

    正则表达式基本语法 正则表达式常见字符 正则表达式特殊字符 正则表达式数量词 正则表达式边界匹配 正则表达式逻辑或...

  • 正则表达式系列-1

    正则表达式系列-1正则表达式系列-2正则表达式系列-3正则表达式系列-4 什么是正则表达式 正则表达式就是用事先定...

  • 正则表达式

    正则表达式 - 教程正则表达式 - 简介正则表达式 - 语法正则表达式 - 元字符正则表达式 - 运算符优先级正则...

  • Python基础入门 - 正则表达式与综合实战

    1. 初识正则表达式 1.1 介绍 步骤介绍正则表达式入门及应用正则表达式的进阶正则表达式案例 1.2 正则表达式...

  • Java正则表达式参考

    Java正则表达式入门 java正则表达式应用 深入浅出之正则表达式(一) 深入浅出之正则表达式(二) 正则表达式...

  • 正则表达式

    正则表达式 正则表达式就是记录文本规则的代码 正则表达式常用的元字符 正则表达式常用的限定符 正则表达式举例:这里...

  • Python爬虫(十)_正则表达式

    本篇将介绍python正则表达式,更多内容请参考:【python正则表达式】 什么是正则表达式 正则表达式,又称规...

  • python正则表达式

    本篇将介绍python正则表达式,更多内容请参考:【python正则表达式】 什么是正则表达式 正则表达式,又称规...

  • 正则表达式

    了解正则表达式基本语法 能够使用JavaScript的正则对象 正则表达式简介 什么是正则表达式 正则表达式:用于...

网友评论

      本文标题:正则表达式

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