• javascript基础---正则表达式和字符串,数组


    一、正则表达式

    1.正则表达式的创建方法

    var re=/abc/;

    var re=new RegExp("abc")

    var re=new RegExp(/abc/);

    2.正则表达式语法

       2.1简单语法

         c表示一个或者多个普通字符

         {n}:表示匹配的次数

         {n,}:表示匹配的次数》=n

         {n,m}:表示匹配的次数》n,<m

          :表示转义的次数

          ^:表示匹配输入的字符串的开始位置(在被匹配的字符串的开始部分 来匹配)

         $:表示匹配输入字符串的结束位置(在被匹配的字符串的结束部分  来匹配)

           *:》=0;

            +:>=1;

             ?:0或者1;当他和其他字符结合起来用的话就是 非贪心匹配。

    下面这些都是匹配一个字符的:

            x|y:表示字符串匹配x或者Y 都算匹配成功

            [xyz]:表示能匹配 xyz中的任意字符 eg:匹配extend中的x.

            [^xyz]除了xyz之外的字符都能匹配。

            [x-z]能匹配x-z的任意一个字符 eg:[a-c]==[abc]

    非贪心模式匹配

         就是在次数后面+?

    正则表达式转义语法

        :匹配一个单词,但是这个单词必须位于边界  eg: /abc/   djfabcoweabc 边界上的abc匹配

        B:匹配一个单词,而且要非边界上的单词

        d:匹配0-9中的一个数字字符

        D:匹配一个非数字字符,就是0-9以外的一个字符。

        s:表示匹配一个空白字符。

        S:表示匹配一个非空白字符。

        w:表示匹配任何一个单词字符,表示数字字母 下划线。

        W:表示匹配任何非单词字符 。

             

     3.创建一个正则表达式 后使用exec() 和test()匹配字符串        

    exec():是匹配一个字符串后返回含有匹配的结果的数组。 text()是匹配一个字符串后返回是否匹配。

    返回的数组中有:input:要匹配的字符串, index:屁屁额的子字符串开始的位置, lastIndex:被匹配的最后一个子串的位置

    source:模式

    test():返回真或者是假。

    二.字符串

     字符串的相关函数:

    charAt(i)   eg:str.charAt(i) 表示 返回str字符串的第i个字符。

    charCodeAt(i)     str.charCodeAt(i)  表示返回str字符串的第i个字符的Unicode码值。

    concat(str1,str2),   str3=concat(st1,str2);

    indexOf(str,sub)    返回sub在str中的首次匹配的位置,如果没有找到则返回-1

    lastIndexOf(str,sub), 在str中找到sub最后一次匹配的位置。

    slice()  提取字符串中的一部分。

    splice()   str.splice(" ,"),将字符串以,分开,返回数组。

    match(re)   str.match(正则对象|模式), 查找正则对象,没有返回null  否则返回数组

    replace(re,retext)  str.replace(reg,"abcd")  通过正则查找,如果找到就用abcd代替,返回替换后的副本。

    search(re)  用来搜索一个re,有则返回他到字符串开始的距离,否则返回-1

    三、数组

    var arr=new Array();

    arr.isArray()  判断arr是否是一个数组

    常用函数:

    (1)插入、删除

      pop()    var e=arr.pop()表示 尾部删除,返回当前的数值

      push()   var len=arr.push()表示尾部插入,返回当前的长度

      shift()    var e=arr.shitf()  表示头部删除一个元素,返回当前元素的值

      unshift()  var len=arr.unshitf()  表示在头部插入一个元素,返回当前的长度。

    (2)遍历数组中的每一个元素(ECMAScript 5)  (fun1都可以保护三个元素,item index array,当前元素,下标,数组名)

      every(),对数组中的每个元素进行function测试,直到返回的结果值为假时结束。就不再执行了。 eg  arr.every(fun1).对arr数组中的元素从头开始带人fun1中执行,直到fun1的结果为false就不在执行了。

      filter(),类似every,会执行完所有的项,对返回值为真的项值放入数组中,最后返回这个数组

      forEach() 对数组中的每个元素调用 回调函数。 arr.forEach(fun1,this) 对arr 中的每个元素用fun1函数。this指向自己,可以省略。

      map()   和every()相似,数组中的每个元素调用测试函数,将每个项返回的结果都放在数组中,最后返回数组。 arr.map(fun1);

      some()  对数组中的每个元素进行function测试,直到返回的结果值为真时结束。

     reduce() 从左到右

    reduceRight() 从右到左

     (3)数组链接

       concat()返回新数组

       join() 返回一个字符串

    (4)找数组下标

       indexOf()用全等于 匹配得到的下标  arr.indexOf("a"),找到返回下标,否则返回-1

       lastIndexOf() 从后面往前匹配得到的下标

     (5)排序

        sort()进行排序。 默认情况下是升序排序,大写优于小写。 其中自定义排序中,-1表示第一个参数比第二个参数小。0表示两个参数相等。1表示第一个参数比第二个参数大。

        sortOn()表示按1个或者多个字段进行排序。

        reverse()反转一个数组

    (6)数组克隆

      浅表克隆:就是当数组中的元素仍然是一个复杂数据类型时,不进行复制,只是建立一个指向原数据的引用;

    深度克隆:是将原始数组中的引用类型读取数据然后从新填充数组。

  • 相关阅读:
    HTK代码阅读之内存管理
    Hashids java 版使用
    利用forever管理nodejs
    使用 PM2 管理nodejs进程
    nodejs服务后台持续运行三种方法
    Linux tmp目录自动清理总结
    解决wampserver无法启动问题
    深入浅出TCP中的SYNCookies
    电话交换和分组交换
    windows 查看 tcp 连接表
  • 原文地址:https://www.cnblogs.com/xuruweb/p/4119493.html
Copyright © 2020-2023  润新知