• 正则表达式学习(一)


      以前看到一大串符号如这样的/^[a-z]+s+d+$/g,就知道是正则表达式,但是具体代表什么意思,一直没去深究过.今天趁着工作上稍微的清闲,来探索一下.

    这里以JavaScript中的正则表达式为例.

    正则表达式两种写法:

      var reg = new RegExp("e");//RegExp对象是一个预定义了属性和方法的正则表达式对象;

      var reg1 = /e/;

    常用的是第二种写法,接下来也就第二种进行探索

    使用字符串方法:search()和replace() 用法:字符串.方法()

      search()方法用于检索字符串中指定的字符串,或检索与正则表达式相匹配的子字符串,并返回子字符串的起始位置,检索不到返回-1.

      实例: var str = "Hello World";

         var n = str.search(/world/i);//这里的world是一个模式(用于检索),i是一个修饰符(不区分大小写).

         var n1 = str.search("World");//语法:StringObj.search(RegExp),对全局和大小写敏感

      输出结果为:6

      replace()方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的字符串

      实例: var str = "Hello World!";

         var res = str.replace(/world/i,"Java");

         var res1 = str.replace("World","Java");

      输出结果为: Hello Java!

      正则表达式修饰符:

                i  执行对大小写不敏感的匹配;

                g  执行全局匹配(查找所以匹配,而非在找到第一个后停止);

                m  执行多行匹配;

      正则表达式模式:

            表达式: [abc]  查找方括号之间的任何字符;

                [0-9]  查找任何从0至9的数字;

                (x|y)  查找任何以|分割的选项;

            元字符: d  查找数字;

                s  查找空白字符;

                  匹配单词边界;

                uxxxx 查找以十六进制数xxxx规定的Unicode字符;

            量词:  n+  匹配任何包含至少一个n的字符串;

                 n*  匹配任何包含零个或者多个n的字符串;

                 n?  匹配任何包含零个或者一个n的字符串;

      RegExp对象的方法:RegExp.方法()

         test()方法:用于检测一个字符串是否匹配某个模式,如果字符串中含有匹配的文本,则返回true,否则返回false;

         实例:  var rep = /e/;

              var res = rep.test("Hello World!");

              var res1 = /e/.test("Hello World!");        

         输出结果为: true

         exec()方法:用于检索字符串中的正则表达式的匹配.该方法返回一个数组来存放匹配的结果,如果未找到匹配,则返回null;

         实例:  /e/.exec("Hello World!");

         输出结果为: e

         compile()方法:改变RegExp,既可以改变检索模式,也可以改变第二个参数

         实例:  var rep = /e/;

              var res = rep.test("Hello");

              rep.compile("d");

              var res1 = tep.test("Hello");

          输出结果为: true,false

  • 相关阅读:
    1.2《想成为黑客,不知道这些命令行可不行》(Learn Enough Command Line to Be Dangerous)——开始第一条命令
    1.1《想成为黑客,不知道这些命令行可不行》(Learn Enough Command Line to Be Dangerous)——运行终端
    1《想成为黑客,不知道这些命令行可不行》(Learn Enough Command Line to Be Dangerous)——基础(Basics)
    Ember.NativeArray-原生数组
    ArrayProxy-Emberjs
    填移动端坑系列一——如何让h5页面完美整屏显示
    jsonp封装方法二
    jsonp封装
    数据结构(2)-队列
    数据结构(1.1)--(插曲)线性表的顺序存储结构和链式存储结构
  • 原文地址:https://www.cnblogs.com/goujh/p/8479685.html
Copyright © 2020-2023  润新知