美文网首页
{正则表达式}

{正则表达式}

作者: jrg_memo | 来源:发表于2016-12-19 17:21 被阅读29次
  • 定义
    RegExp === Regular Expression :
    一种用来描述字符组合特征匹配模式

  • 作用

    • 替换/删除文本
    • 测试字符串内的模式
    • 根据模式匹配从字符串中提取一个子字符串,用来在文本或者输入字段中查找特定的文字
  • 语法
    var re = / 字符 / 标志;

  • 标志 可选
    g全局搜索。
    i不区分大小写搜索。
    m 多行搜索。
    y 执行“粘性”搜索,匹配从目标字符串的当前位置开始,可以使用y标志。

  • 常见字符
    \d 表示数字字符;等价于[0-9]
    \w 单词字符,数字,下划线;等价于[a-zA-Z0-9_]
    \s 空白符;等价于[\t\n\f\x0B\r]
    [a-zA-Z0-9]单词字符、字母、数字
    \b单词边界
    . 除了回车和换行外的所有字符;
    *出现0次或多次
    +至少出现一次
    ?出现0次或1次
    x{3}出现3次x
    ^$表示开始和结尾;
  • 匹配模式
    在整个表达式匹配成功的提前下
    • 贪婪模式 :尽可能多的匹配,即一般趋于最大长度匹配。
    • 非贪婪模式:以最少的匹配字符。
  • 使用方式

    正则:

  • test () 方法执行一个检索,用来查看正则表达式与指定的字符串是否匹配。
    RegExp.test( str )
    // 返回truefalse

  • **exec() **方法为指定的一段字符串执行搜索匹配操作。
    RegExp.exec( str )
    // 返回一个数组null

字符串:

应用

  • 去除字符串两边的空白字符
    function trim(str) {
    var re = /^\s+|\s+$/g;
    str.replace(re,"");
    return str;
    }
  • 实现 addClass(el, cls)hasClass(el, cls)removeClass(el,cls)
    function hasClass(el,cls) {
    var reg=new RegExp('(\s|^)'+cls+'(\s|$)','g');
    return reg.test(el.className);
    }

     function addClass(el,cls){ 
            if(!hasClass(el,cls)){ 
                 el.className=el.className+" "+cls; 
            }
     }
    
     function removeClass(el,cls) { 
            var reg=new RegExp('(\\s|^)'+cls+'(\\s|$)','g'); 
            el.className=(el.className).replace(reg,"");
     }
    
  • 判断邮箱
    function isEmail(str){
    reg=/(^\w+)@(\w+).com$/g;
    return reg.test(str);
    }

  • 判断手机号
    function isPhoneNum(str){
    reg=/^1[3-8]\d{9}$/;
    return reg.test(str);
    }

  • 判断合法的用户名(长度6-20个字符,只能包括字母、数字、下划线)
    function isValidUsername(str){
    reg=/^\w{6,20}$/;
    return reg.test(str)? "合法":"非法";
    }

  • 判断合法密码(长度6-20个字符,只包括大写字母、小写字母、数字、下划线,且至少包括两种)
    function isValidPassword(str) {
    if (/^[a-zA-Z0-9_]{6,20}$/.test(str)) {
    return true
    }else{
    return "长度6-20个字符,包括大写字母、小写字母、数字、下划线至少两种"
    }
    }

  • 匹配颜色
    var re = /#\w{6}/g;
    var subj = "color: #121212; background-color: #AA00ef;
    width: 12px; bad-colors: f#fddee #fd2 "
    alert( subj.match(re) ) // #121212,#AA00ef

  • 修改正则表达式
    原始
    var str = 'hello "hunger" , hello "world"';
    var pat = /".*"/g;--------------------------------->贪婪模式
    str.match(pat); //输出[""hunger" , hello "world""]

    修改
           var str = 'hello "hunger" , hello "world"';
           var pat = /".*?"/g;--------------------------------->非贪婪模式
           console.log(str.match(pat)); //输出["hunger","world"]
    
  • 补全正则表达式
    非贪婪模式
    str = '.. .. .. '
    re = //
    gstr.match(re); // ["", ""]

    贪婪模式
           str = '.. <!-- My -- comment \n test --> .. <!----> .. '
           re = /<!--[^>]*/g; //
           str.match(re); 
    
  • 补全正则表达式
    非贪婪模式
    var re = /<.+?>/gvar
    str = '<> <a href="/"> <input type="radio" checked> <b>'
    str.match(re) // '<a href="/">', '<input type="radio" checked>', '<b>'
    贪婪模式
    var re = /<[ ^>]+>/gvar
    str = '<> <a href="/"> <input type="radio" checked> <b>'
    str.match(re) // '<a href="/">', '<input type="radio" checked>', '<b>'

相关文章

  • 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/ewqamttx.html