正则表达式
1.什么是正则表达式?
正则表达式是由一个字符序列形成的搜索模式
当你在文本中搜索数据时,你可以用搜索模式来描述你要查询的内容。
正则表达式可以是一个简单的字符,或一个更复杂的模式。
正则表达式可用于所有文本搜索和文本替换的操作。
2.直接量字符
JavaScript的正则表达式还通过以反斜杠()开头的转义序列支持某些非字母字符。
字母数字字符 | 自身 |
---|---|
\ f | 换页符 |
\ n | 换行符 |
\ r | 回车 |
\ t | 制表符 |
\ o | NUL字符 |
\ v | 垂直制表符 |
3.字符类
将单独的直接符放进中括号内就可以组合成字符类.一个字符类和它所包含的任何一个字符都匹配,所以正则表达式 / [abc] / 和字母 “a” , “b” , “c” 中的任何一个都匹配.另外还可以定义否定字符类,这些类匹配的是除那些包含在中括号之内的字符外的所有字符.定义否定字符尖时,要将一个 ^ 符号作为从左中括号算起的第一个字符.正则表达式的集合是 / [a-zA-z0-9] / 。
由于某些字符类非常常用,所以JavaScript的正则表达式语法包含一些特殊字符和转义序列来表示这些常用的类。
[…] | 位于括号之内的任意字符 |
---|---|
[^…] | 不在括号之中的任意字符 |
. | 除了换行符之外的任意字符,等价于[^\n] |
\w | 任何单字字符, 等价于[a-zA-Z0-9] |
\W | 任何非单字字符,等价于[^a-zA-Z0-9] |
\s | 任何空白符,等价于[\ t \ n \ r \ f \ v] |
\S | 任何非空白符,等价于[^\ t \ n \ r \ f \ v] |
\d | 任何数字,等价于[0-9] |
\D | 除了数字之外的任何字符,等价于[^0-9] |
[\b] | 一个退格直接量(特例) |
4.重复
* | 匹配前面元字符0次或多次 |
---|---|
+ | 匹配前面元字符1次或多次 |
? | 匹配前面元字符0次或1次 |
{n} | 精确匹配n次 |
{n,} | 匹配n次以上 |
{n,m} | 匹配n-m次 |
使用 RegExp 对象
在 JavaScript 中,RegExp 对象是一个预定义了属性和方法的正则表达式对象。
JavaScript的更多主题
1、 什么是数据类型转换?
使用表单、prompt 获取过来的数据默认类型是字符串类型的,此时就不能直接进行加减法运算,而需要转换变量的数据类型。
通俗来说,数据类型转换就是将一种数据类型转换成另外一种数据类型
2.有几种转换方式?
1、转换为字符串类型
2、转换成数字型
3、转换成布尔类型
4、转换方法:
1、强制类型转换:将一种数据类型强制转换成另一种类型的数据,类型转换主要是指将其他类型的数据准换成String、Number、Boolean类型的数据
2、隐式转换方法:自动转换,由于JS在运算过程中,自己进行转换的操作,不需要人为的参与
一、转换为字符串
1、使用 toString( )方法
var num = 123;
console.log(num);
console.log(typeof num);
var str=num.toString();
console.log(str);
console.log(typeof str);
这种调用方法只适用Number、Boolean类型的数据,Null和Undefined类型数据会报错,并不适用
2、 调用 String() 函数
调用String( )函数,并将被转换的数据作为参数传递给函数。
! 注意:
1、使用String()做 强制转换的时候,对于Number、Boolean类型的数据实际上就是调用toString( )方法。
2、但是对于null和undefined,就不会调用toString( )方法,它会直接将 null 转化为 “null” ,将 undefined 转化为 “undefined”
var num = 123;
console.log(String(num));
console.log(typeof String(num));
3、+ 拼接字符串 (隐式转换)
var num = 123;
var str = num + '';
console.log(str);
console.log(typeof str);
二、转换为数字型
1、parseInt() 函数转换为数值型
parseInt( )函数可以将字符串中有效的整数内容提取出来,将字符型转换为 数字型的;函数在解析字符串的时候按照从左到右的顺序
console.log(parseInt('3.12')); // 3 取整
console.log(parseInt('123aa')); // 会取到字符串中的整数部分,从左向右
console.log(parseInt('rem111px')); // NaN
结果:
3
123
NaN
2、parseFloat() 函数转换为数值型
parseFloat( ) 函数可以获得有效的小数,并且将字符型转换为数字型。
函数在解析字符串的时候按照从左到右的顺序,不能解析除了数字以外的文本。
console.log(parseFloat('3.14')); //3.14
console.log(parseFloat('123aa')); //去掉后面部分,只保留数字
console.log(parseFloat('rem123qq')); //NaN
结果:
3.14
123
NaN
! 注意:
1、如果对非String类型数据使用parseInt( ) 或是parseFloat( ) ,它会现将其转化为String,然后再进行操作。
2、由于 parseInt( ) 或是parseFloat( ) 无法解析非数字类型的字符,所以输出 NaN,但是数据类型还是变为 number 数字类型。
3、使用Number() 函数(强制转换)
调用 Number() 函数使其他类型的数据转换成 数字型
-
当需要转换的字符串引号引的不是数字
例如abc,最终输出结果就是NaN(Not A Number)不是一个数字。
-
字符串→Number 转换情况:
1、如果是纯数字的字符串,直接将其转换为数字;
2、如果字符串中有非数字内容,则转换为NAN(Not A Number);
3、如果字符串是一个空串或是一个全部由空格组成的字符串,则转换为0。
-
Boolean值→Number 转换情况:
1、如果是true,转换为1;
2、如果是false,转换为0。
-
Null值→Number 转换情况:
如果是null(空值),转换为0。
-
Undefined→Number 转换情况:
如果是undefined,转换为NAN(Not A Number)
4、算术运算隐式转换
利用算术运算 (- * /)隐式转换数据类型
var a='22'-0;
console.log(a);
a='22'*1;
console.log(a);
a='22'/1
console.log(a);
输出:
22
22
22
三、转换为布尔类型
Boolean() 函数 | 其他类型转换成布尔值 |
---|
! 注意:
代表 空、否定 的值都会被转换成 false,例如 ‘’、0、NaN、null、undefined
其余的值都会被转换成 true
var a=123;
// 调用Boolean()函数将数据类型转化为Boolean
a=Boolean(a);
console.log(a);
console.log(typeof a);
输出:true
boolean
数字类型→布尔 | 除了0和NAN其余的都是true |
---|---|
字符串→布尔 | 除了空串(没有内容)其余都是true |
空值→布尔 | null转换的是false |
undefined→布尔 | 空值 |
对象(object) | true |