首页 > 其他 > 详细

正则表达式

时间:2021-05-04 23:21:47      阅读:31      评论:0      收藏:0      [点我收藏+]
  /**
      *  正则表达式
     */


     // 创建 正则表达式的对象
     /**
      *  语法
      *  var 变量 = new RegExp("正则表达式","匹配模式")
      *  var reg = new RegExp("a");  检查字符串是否  含有 a 
      *  在 构造函数中 可以传递一个匹配模式 作为 第二个参数
      *     可以是 
      *       i 忽略大小写
      *       g 全局匹配模式
     */ 
      // var reg = new RegExp("a","i"); 
      // var str = "a" 
      /**
       *  正则表达式的方法
       *  符合返回 true 否则返回 false
       *  
      */
      // var result = reg.test(str)
      // console.log(result);


      // reg = /a/i;
      // console.log(typeof reg); // object
      // console.log(reg.test("abc")); // true

      // 创建一个正则表达式 检查一个字符串中是否 有a或b
      // reg = /a|b/;

      /**
       * [] 里的内容也是 或的关系
       * [ab] == a|b
       * [z-a] 任意小写字母
       * [A-Z] 任意大写字母
       * [0-9] 任意数字 
       * 
       * */ 
      // reg = /[ab]/   


      // 检查一个字符串 是否 含有 abc 或 adc 或aec
      // reg = /abc|adc|aec/ 
      // reg = /a[bde]c/

      /**
       *  [^] 除了
      // */
      // reg = /[^ab]/
      
      // reg = /[^0-9]/;

      // console.log(reg.test("23e23"));

      // -------------------------------------------------


      // 字符串和 正则相关的方法

      // var str = ‘1a2b3c4d5e6f7‘; 
      /**
       * split() 可以将一个字符串拆分为一个数组
       * 方法中可以传递一个正则表达式作为 参数 这样方法将会根据正则表达式去拆分字符串
      */
    //  var result = str.split("c");
    //  console.log(result); //["1a2b3", "4d5e6f"]

    /**
     * 根据任意字母来将字符串拆分
     * */ 
    //  var result = str.split(/[A-z]/);
    //  console.log(result);  // ["1", "2", "3", "4", "5", "6", "7"]


    /**
     * search()
     *  可以搜索字符串中是否含有指定内容
     *  如果搜索到指定内容 则会返回第一次出现的索引,如果没有搜到 则 返回 -1
     *  它可以接受一个正则表达式作为参数 然后会根据正则表达式去检索字符串
     * */ 
    // str = "hello abc hello abc aec afc";
    /**
     * 搜索字符串中是否含有 abc 或 aec 或 afc 
    */
    // result = str.search(/a[bef]c/);
    // console.log(result);


    /**
     * match()
     *  可以根据正则表达式, 从一个字符串中 将符合条件的内容 提取出来
     *  默认情况下 只会找到第一个 符合要求的内容 找到以后就停止检索
     *      可以设置正则表达式为全局匹配模式 这样就会匹配到所有的内容
     *      可以为一个正则表达式设置多个匹配模式 且顺序无所谓
     *      match() 会将匹配到的内容封装到一个数 组中返回 即使只查询到一个结果
    */
    // str = "1a2b3c4d5e6f7A8B9C";
    // result = str.match(/[a-z]/ig);
    // console.log(result);  // ["a", "b", "c", "d", "e", "f", "A", "B", "C"]



    /**
     *  replace()
     *    可以将 字符串中指定内容 替换为 新的内容
     *    参数: 
     *      1 被替换的内容, 可以接受 一个 正则表达式作为参数
     *      2 新的内容
     *   默认只会替换第一个 
    */
    // str = "1a2b3c4d5e6f7A8B9Ca";

    // result = str.replace("a","@_@");
    // console.log(result); //1@_@2b3c4d5e6f7A8B9Ca

    // result = str.replace(/a/g,"@_@");
    // console.log(result);  // 1@_@2b3c4d5e6f7A8B9C@_@

    // result = str.replace(/a/ig,"@_@");
    //  console.log(result); // 1@_@2b3c4d5e6f7@_@8B9C@_@

    //  result = str.replace(/[a-z]/ig,"@_@");
    //  console.log(result);  // 1@_@2@_@3@_@4@_@5@_@6@_@7@_@8@_@9@_@@_@

    // result = str.replace(/[a-z]/ig,"");
    // console.log(result);  // 123456789



     /**
      *  量词 
      *   -通过量词可以设置一个内容出现的次数
      *   - 量词只对 它前边一个内容起作用
      *   -{n} 正好出现 n 次
      *   -{m,n} 出现 m-n 次
      *   -{m,} 出现 m次以上
      *    + 最少1次, 相当于 {1,}
      *    * 0或多个, 相当于 {0,}
      *    ? 0或1个, 相当于 {0,1}
     */  
    // var reg = /a{3}/; 
    // console.log(reg.test("aaabc")); // true

    // var reg = /ab{3}/;  // 只对b 起作用
    // console.log(reg.test("aaabbbbc")); // true

    // var reg = /(ab){3}/;  // ab 连续3次
    // console.log(reg.test("aaabababc")); // true


    // var reg = /ab{1,3}c/;  //   1-3次
    // console.log(reg.test("abbbbc"));

    // var reg = /ab+c/;  //   + 最少1次
    // console.log(reg.test("abbbbc"));

    // var reg = /ab*c/;  //   * 0或多个
    // console.log(reg.test("abbbbc"));

    // var reg = /ab?c/;  //   ? 0或1个
    // console.log(reg.test("ac"));


    /**
     * 检查一个字符串是否以a 开头
     * ^ 表示开头
     * $ 表示结尾
     * */ 
    // reg = /^a/;   // 匹配开头的a
    // reg = /a$/; // 匹配结尾的a
    // console.log(reg.test(‘fdfdaaadfdfda‘));  

    // /** 
    //  *  如果正则表达式中 同时使用 ^ $ 则要求 字符串必须完全符合 正则表达式
    //  * /
    // reg = /^a$/;
    // console.log(reg.test(‘aa‘));

    /**
     * 创建一个 正则表达式 检查一个字符串 是否是一个合法手机号
     *  1 3 522679763 
     * 1. 以 1 开头
     * 2. 第二位是 3-9 
     * 3  三位任意数字 9个
     * ^1 [3-9] [0-9]{9}$
     * */  

    // var phoneStr = ‘13522679763‘ 
    // phoneReg = /^1[3-9][0-9]{9}$/;
    // console.log(phoneReg.test(phoneStr));


    /**
     *  检查一个字符串是否含有 . 
     *  . 表示任意字符
     *  在正则表达式中 \ 作为转义字符
     *  \. 来表示 .
     * \\ 表示 \
    */

    // var reg = /./;
  //  var reg = /\./; 
  //  console.log(reg.test("dfs.dfsd"));


  /**
   *  \w  任意 字母/数字/ _   [A-z0-9_]
   * \W  除了 字母/数字/ _  [^A-z0-9]
   * \d  任意的数字[0-9]
   * \D  除了数字[^0-9]
   * \s  空格
   * \S  除了空格
   * \b  单词边界
   * \B  除了单词边界
  */

    // reg = /\w/
    // reg = /\W/
    // console.log(reg.test(‘e‘));

    /**
     *  创建一个正则表达式 检查一个字符串是否含有单词 child
    */
    // reg = /\bchild\b/;  
    // console.log(reg.test(‘hello children‘));  // false
    // console.log(reg.test(‘hello child ren‘)); // true

正则表达式

原文:https://www.cnblogs.com/eric-share/p/14730287.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!