美文网首页码农的世界互联网科技
Web前端必知篇:正则表达式

Web前端必知篇:正则表达式

作者: 秋风_bdfd | 来源:发表于2018-12-14 20:03 被阅读3次

    什么是正则表达式?

    也称规则表达式。(Regular Expression,在代码中常简写为regex、regexp或RE),正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。

    正则表达式是由一个字符序列形成的搜索模式。

    当你在文本中搜索数据时,你可以用搜索模式来描述你要查询的内容。

    正则表达式可以是一个简单的字符,或一个更复杂的模式。

    正则表达式可用于所有文本搜索和文本替换的操作。

    特点

    灵活性、逻辑性、功能性都很强;

    .性能要比正常函数好;

    可以迅速地用极简单的方式达到字符串的复杂控制;

    正则都是操作字符串的(不用来操作对象其他类型)。

    对于刚接触的人来说,比较晦涩难懂。

    这里还是要推荐下小编的web前端学习 群 : 6879,

    58461,不管你是小白还是大牛,小编我都欢迎,不定期分享干货,包括

    小编自己整理的一份最新的web前端资料和0基础入门教程,欢迎初学和进

    阶中的小伙伴。在不忙的时间我会给大家解惑。

    下面我们来看一个例子,看看它到底好在哪?

    我们判断一个字符串中的数字,我们先用常用的方法实现一遍

    //判断数字

    function findNum(str){

    var arr = [];

    var tmp = '';

    for(var i=0;i

    if( str.charAt(i)<='9' && str.charAt(i)>='0' ){

    tmp += str.charAt(i);}

    else{

    if(tmp){

    arr.push(tmp);

    tmp = '';}

    }

    }

    if(tmp){

    arr.push(tmp);

    tmp = '';}

    return arr;

    };

    alert(findNum(str)); //123,54,33,1,879

    看完这个例子,大家是不是觉得好麻烦,下面就来看看正则是怎么实现的

    var str = 'haj123sdk54hask33dkhalsd879';

    function findNum(str){

    return str.match(/d+/g);

    };

    alert(findNum(str)); //123,54,33,1,879

    简单的几行代码就实现,这也正是正则的强大之处。

    写法

    var arr = []; /var arr = new Array();

    var obj = {}; /var obj = new Object();

    var re = /a/; /var re = new RegExp('a');

    正则的写法和数组对象基本一样,我们推荐使用前面的写法

    当需要给正则传参时,要使用后面这种写法。

    正则表达式的方法

    正则中的转义字符

    :换行符

    s:空格 S:非空格

    d:数字 D:非数字

    w:字符(包含字母,数字和下划线) W:非字符

    test

    正则去匹配字符串,返回布尔值,成功返真,失败返假,用途是判断。

    正则.test(字符串);

    栗子看得更直接一点

    var str = "abcdef";

    var re = /bc/;

    alert(re.test(str)); //true

    search

    正则去匹配字符串,如果成功返回匹配成功的位置,失败返回-1(类似indexOf)。

    在正则里默认是区分大小的,如果不需要区分,在正则的最后面加标识i。

    字符串.search(正则);

    var str = 'abcdef';

    var re = /B/i;

    alert(str.search(re)); //1

    replace

    replaceChild(替换节点),正则去匹配字符串,匹配成功的字符会替换成心得字符串。

    字符串.replace(正则,新的字符串); (新字符串可以是字符串也可以是回调函数)

    var str = 'aaa';

    var re = /a/g;

    // str=str.replace(re,'b'); //字符串

    str=str.replace(re,function ($0){ //回调函数

    //alert($0); //a

    return $0+"1";

    });

    alert(str); //a1a1a1

    match

    正则去匹配字符串,如果成功返回数组,失败返回null。

    字符串.match(正则);

    str.match(/d+/g);

    如果只写d只会返回一个包含1的数组(正则默认匹配成功时就结束,不会继续匹配)

    如果需要查找所有数字,需要加一个标记g(全局匹配)

    var str="1 plus 2 equal 3"

    str=str.match(/d+/g);

    alert(str); //1,2,3

    var str = 'aaa';

    str=str.match(/d+/g);

    alert(str); //null

    相关文章

      网友评论

        本文标题:Web前端必知篇:正则表达式

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