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
  • 相关阅读:
    HihoCoder#1052:基因工程
    HihoCoder第十周:后序遍历
    HihoCoder第九周 状态压缩 二 与POJ2411总结
    [百度之星]资格赛:IP聚合
    HihoCoder第八周:状态压缩 一
    HihoCoder#1051:补提交卡
    HihoCoder#1039:字符消除
    HihoCoder第七周:完全背包问题
    HihoCoder第六周:01背包问题
    杭电2502--月之数
  • 原文地址:https://www.cnblogs.com/tugenhua0707/p/10658274.html
Copyright © 2011-2022 走看看