day-17.3 转义

转义符:

  即转义的字符怎么去匹配;

转义的字符:

  字符串中可以通过转义符去对一些字符进行转义,以改变在JS语法中原本的含义;比如:

1 var str = "\"\"\n\s\t";//通过转义之后,比如原来字符n在这里通过转义后代表的意思是换行;
转义序列字符
\b 退格
\f 走纸换页
\n 换行
\r 回车
\t 横向跳格 (Ctrl-I)
\' 单引号
\" 双引号
\\ 反斜杠

JS里面能对转义内容进行识别判断;比如上述字符串,通过以下判断,返回值是true;

1 var str = "\"\"\n\s\t";
2 var r1 = //n/;
3 r1.test(str); //true

空格也能直接判断;

1 var str = " "; //输入一个空格;
2 var r1 = / / ;//一个空格的正则对象;
3 var r2 =/  /;//2个空格的正则对象;
4 r1.test(str); //true;
5 r2.test(str);//false;

一些特殊的转义:

\s :匹配所有的空格字符;\S:匹配所有的非空格字符;

即无论几个空格,用/s匹配都为true;

只要字符串里面存在非空格的字符,用/S匹配都为true;

\d:匹配所有数字的字符;\D:匹配所有非数字的字符;

即无论几个数字,用/s匹配都为true;

只要非数字的字符在里面,用/S匹配都为true;

\w:匹配(数字,字母,_) ; \W :上述3种字符外的其他任何所有字符;

字符串里含(数字,字母,_),用/w匹配都为true;

字符串里含以上3种字符之外的字符(比如汉字),用/W匹配都为true;

\b:单词边界;\B:非单词边界;

单词边界:即通过转义\bbeautifule\b包含住的字符为一个单词,其他的除了(数字,字母,_,起始和终止位置)之外的字符都认为是单词边界;

非单词边界:相反

比如如下情况:

1 var a = "today is a beautifulaaaa day ?";
2             var b = /beautiful/;  //由于没有设置单词边界,他会认为不是匹配单词,而是匹配字母,则返回true;
3             console.log(b.test(a));
4             var c = /\bbeautiful\b/;//由于加了单词边界 beautifuleaaa两边是空格,不属于(数字,字母,_),所以,被认为beautifuleaaa是一个单词,与beautiful 不匹配,输出false;
5             console.log(c.test(a));

符号点 (。)

符号点(。)代表除非转义字(\n,\r,\t)符之外的所有字符;

1 var a = "haha";
2 var b = /./;
3 console.log(b.test(a));//true

如何匹配所有字符? 可以通过/s /S 、/w /W 、/d /D 这些组合写法去匹配所有字符;

正则表达式对象的转义写法;

任何有自身特殊意义的字符,在正则表达式里都需要转义后才能去匹配,转义写法类似与字符串的转义;

1 var a = ".";
2 var b =/./ //这里也能匹配得到,因为字符串里的字符点,在符号.的所有字符的范围内,所以也会输出true,但不是因为找到点;
3 var c =/\./ //这样才是真正的找到点字符;
4 ----------------------------------
5 var a ="/";
6 var b =/\//;//原理一样,要找到字符串中的“/”字符,需要转义,因为/本身有自身的特殊含义,如果直接写///,则会认为注释掉/;

 

posted @ 2018-08-07 21:28  bibiguo  阅读(119)  评论(0)    收藏  举报