zoukankan      html  css  js  c++  java
  • JS正则四个反斜杠的含义

    我们首先来看如下代码,在浏览器中输出的是什么?

    // 在浏览器中输出的
    console.log('\'); // 输出 
    console.log('\\'); // 输出 \

    一:js正则直接量语法对 反斜杠的含义

    1.1  . 一个反斜杠加点号(.) 

    var reg1 = /^.$/g; 
    console.log(reg1.test('.')); // 输出 true, 因为 . 是对元字符.进行转义,因此匹配字符串中的.
    console.log(reg1.test('a')); // 输出false . 转义后只能匹配字符串中的. ,不再是元字符匹配任意单个字符了

    1.2  \.  两个反斜杠加 (.)

    在js正则表达式中,两个反斜杠加点号(.), 两个反斜杠会原样输出 \ 字符串。元字符 . 匹配任意字符。

    var reg2 = /^\.$/g; 
    console.log(reg2.test('a')); // false
    console.log(reg2.test('\a')); // true
    console.log(reg2.test('a')); // false
    console.log(reg2.test('\ab')); // false
    console.log(reg2.test('\.')); // true

    1.3  \. 三个反斜杠和点号(.)

    在js正则表达式中,三个反斜杠和 . ,前两个反斜杠匹配两个反斜杠,后面的 . 是对元字符.号进行转义,因此只能匹配字符串中的 . 号,不能匹配任意一个字符。

    var reg3 = /^\.$/g; 
    console.log(reg3.test('a')); // false
    console.log(reg3.test('\.')); // true
    console.log(reg3.test('a')); // false
    console.log(reg3.test('\a')); // false

    1.4 \\. 四个反斜杠加点号(.)

    在js正则表达式中,四个反斜杠匹配四个反斜杠,然后后面的点号是匹配任意的字符,除点之外。

    var reg4 = /^\\.$/g;
    
    console.log(reg4.test('\a')); // false
    console.log(reg4.test('\.')); // false
    console.log(reg4.test('\a')); // false
    console.log(reg4.test('\\a')); // true
    console.log(reg4.test('\\.')); // false
    console.log(reg4.test('\aa')); // false

    2. JS中RegExp对象对反斜杠的含义

    2.1 两个反斜杠加点号(.)

    两个反斜杠加点的含义是:全局匹配字符串中带有点号的。找到的话,就返回true,否则的话,返回false, 首先两个反斜杠在正则 RegExp,返回一个反斜杠 .

    因此一个 反斜杠 . 就是对元字符 . 进行转义。因此只能匹配 . 号了。

    如下代码:

    var reg11 = new RegExp('\.', 'g');
    
    console.log(reg11); // 输出 /./g
    
    console.log(reg11.test('.')); // true
    console.log(reg11.test('.')); // false
    console.log(reg11.test('a')); // false
    console.log(reg11.test('.a')); // true
    console.log(reg11.test('n.a')); // true

    2.2 三个反斜杠加点号(.)

    三个反斜杠和两个反斜杠的含义一样的。

    var reg12 = new RegExp('\.', 'g');
    
    console.log(reg12); // 输出 /./g
    console.log(reg12.test('.')); // true
    console.log(reg12.test('.')); // false
    console.log(reg12.test('a')); // false
    console.log(reg12.test('.a')); // true
    console.log(reg12.test('n.a')); // true

    2.3 四个反斜杠加点号(.)

    四个反斜杠加点号的含义是:在RegExp对象后,会返回 /\./g, 然后是匹配字符串 \ , 点号(.) 是元字符匹配任意的字符。

    var reg12 = new RegExp('\\.', 'g');
    
    console.log(reg12); // 输出 /\./g
    console.log(reg12.test('.')); // false
    console.log(reg12.test('.')); // false
    console.log(reg12.test('a')); // false
    console.log(reg12.test('.a')); // false
    console.log(reg12.test('n.a')); // false
    
    console.log(reg12.test('\a')); // true
    console.log(reg12.test('\aaaa')); // false
    
    console.log(reg12.test('\.')); // true
  • 相关阅读:
    Bootstrap 2.2.2 的新特性
    Apache POI 3.9 发布,性能显著提升
    SQL Relay 0.48 发布,数据库中继器
    ProjectForge 4.2.0 发布,项目管理系统
    红帽企业 Linux 发布 6.4 Beta 版本
    红薯 快速的 MySQL 本地和远程密码破解
    MariaDB 宣布成立基金会
    Percona XtraBackup 2.0.4 发布
    Rocks 6.1 发布,光盘机群解决方案
    精通Servlet研究,HttpServlet的实现追究
  • 原文地址:https://www.cnblogs.com/tugenhua0707/p/10658274.html
Copyright © 2011-2022 走看看