JS基础-常用类和方法

 1.Date

日期的对象,在JS中通过Date对象来表示一个时间
创建一个当前的时间对象:

 let d = new Date();  

创建一个指定的时间对象:

let d = new Date("月/日/年 时:分:秒");  
name功能
getDate()当前日期对象是几日(1-31)
getDay()返回当前日期对象是周几(0-6)
0为周日,1为周1
getMonth()返回当前日期对象的月份(0-11)
0为一月,1为二月
getFullYear()从 Date 对象以四位数字返回年份。
getHours()返回 Date 对象的小时 (0 ~ 23)。
getMinutes()返回 Date 对象的分钟 (0 ~ 59)。
getSeconds()返回 Date 对象的秒数 (0 ~ 59)。
getMilliseconds()返回 Date 对象的毫秒(0 ~ 999)。
getTime()返回当前日期对象的时间戳。
时间戳,指的是从格林威治时间1970年1月1日 0时0分0秒,到现在时间的毫秒数
计算机底层保存时间都是以时间戳的形式保存的。
Date.now()可以获取当前代码执行时的时间戳
setHours()设置 Date 对象中的小时 (0 ~ 23)

2.Math 

Math属于一个工具类,它不需要我们创建对象,它里边封装了属性运算相关的常量和方法。我们可以直接使用它来进行数学运算相关的操作。
方法:
Math.PI  常量,圆周率
Math.abs()  绝对值运算
Math.ceil()  向上取整
Math.floor()  向下取整
Math.round()  四舍五入取整
Math.random()  生成一个0~1之间的随机数,不包括0和1.
Math.round(Math.random()*(y-x)+x);  生成一个x~y之间的随机数。包括x和y。
Math.pow(x,y)   求x的y次幂
Math.sqrt()   对一个数进行开方,即求平方根。
Math.max()   求多个数中最大值
Math.min()   求多个数中的最小值

3.包装类

在JS中为我们提供了三个包装类:
String() Boolean() Number()
通过这三个包装类可以创建基本数据类型的对象
例子:

var num = new Number(2);  
var str = new String("hello");  
var bool = new Boolean(true); 

但是在实际应用中不会这样应用,会出现各种各样的问题,稍作了解即可。

当我们去操作一个基本数据类型的属性和方法时,
解析器会临时将其转换为对应的包装类,然后再去操作属性和方法,
操作完成以后再将这个临时对象进行销毁。

4.字符串的方法

使用ES6中的字符串新方法

String.prototype.padStart(maxLength, fillString='') 或 **String.prototype.padEnd(maxLength, fillString='')**来填充字符串;

方法        功能
length        获取字符串的长度
charAt() 根据索引获取指定的字符
charCodeAt()    根据索引获取指定字符的字符编码
String.fromCharCode()根据字符编码获取字符
concat 连接字符串
indexOf()   从前向后检索字符串,如果字符串中有该内容,则返回其第一次出现的索引,如果没有找到指定内容则会返回-1,可以指定第二个参数,表示开始查找的位置。
indexOf()从后向前
slice(start,[end])

可以从一个字符串中截取指定的内容,并将截取到内容返回,不会影响原变量

参数:
第一个:截取开始的位置索引(包括开始)
第二个:截取结束的位置索引(不包括结束)
可以省略第二个参数,如果省略则一直截取到最后
可以传负数,如果是负数则从后往前数

spilt()可以将一个字符串拆分为一个数组,参数:会根据传入的参数将字符串拆分。
substr()和slice()基本一致,不同的是它第二个参数不是索引,而是截取的数量
substring()和slice()基本一致,不同的是它不能接受负值作为参数,如果设置一个负值,则会自动修正为0,
substring()中如果第二个参数小于第一个,则会动调整位置,例如substring(1,0)等同于substring(0,1)。
toLowerCase()将字符串转换为小写并返回
toUpperCase()将字符串转换为大写并返回


5.正则表达式

正则用来定义一些字符串的规则,程序可以根据这些规则来判断一个字符串是否符合规则,也可以将一个字符串中符合规则的内容提取出来。

1.正则表达式语法

(1)创建正则表达式
var reg = new RegExp("正则表达式","匹配模式");

        //创建一个正则表达式,匹配字符串中的a字符,i表示匹配模式不区分大小写
        let reg = new RegExp("a","i");
        console.log(reg);   //  /a/i
        console.log(typeof reg);    //object

var reg = /正则表达式/匹配模式 (匹配模式可以多个一起写:/gi)

 let reg1 = /a/i;
        console.log(reg1);      //  /a/i
        console.log(typeof reg1);     //object

 匹配模式:i 忽略大小写   j 全局匹配模式。
设置匹配模式时,可以都不设置,也可以设置1个,也可以全设置,设置时没有顺序要求

(2)正则表达式测试方法test()

test()
可以用来检查一个字符串是否符合正则表达式的规则,如果符合返回true,否则返回false。
        console.log(reg.test("abc"))    //true
        console.log(reg.test("Abc"))    //true
        console.log(reg.test("bc"))    //false

(3)正则表达式的语法

| 或  
[] 或    即[ab]等同于a|b

        let reg = /[ab]/;
        console.log(reg.test("ac"))    //true
        console.log(reg.test("bc"))    //true
        console.log(reg.test("cd"))    //false
    //     检查一个字符串中是否含有abc或adc或aec
        reg = /a[bde]c/
        console.log(reg.test("aec"))    //true


[^ ] 除了   [^a]等同于存在除了a以外的其他字符

        let reg = /[^a]/;
        console.log(reg.test("a"))    //true
        console.log(reg.test("abc"))    //true

[a-z] 小写字母 (也可以[e-i])
[A-Z] 大写字母
[A-z] 任意字母,但是还包括了其他ASCII在此之中的
[0-9] 任意数字        [^0-9]表示除了数字

2.正则表达式和字符串方法

split()
可以根据指定内容将一个字符串拆分为一个数组。
参数:
需要一个字符串作为参数,将会根据字符串去拆分数组。
可以接收一个正则表达式,此时会根据正则表达式去拆分数组。

       let str = "1a2s45s6f8f5";

       let result = str.split(/[A-z]/);

       document.write(result);  //1,2,45,6,8,5

match()
可以根据正则表达式,从一个字符串中将符合条件的内容提取出来。
默认情况下我们的match只会找到第一个符合要求的内容,找到以后就停止检索,
我们可以设置正则表达式为全局匹配模式(g),这样就会匹配到所有的内容。
可以为一个正则表达式设置多个匹配模式,且顺序无所谓,即 ig等同于gi
match()会将匹配到的内容封装到一个数组中返回,即使只查询到一个结果。

let str = "1a2b3c4d5e6f7g";
        let result = str.match(/[a-z]/g);
        document.write(result); //a,b,c,d,e,f,g

        document.write("<br>");

        result = str.match(/[0-9]/g);
        document.write(result); //1,2,3,4,5,6,7

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

        let str = "1a2b3c4d5e6f7g";
        let result = str.replace(/[a-z]/g,"");
        document.write(result); //1234567

search()
可以搜索字符串中是否含有指定内容,如果搜索到指定内容,则会返回第一次出现的索引,如果没有搜索到返回-1。
它可以接受一个正则表达式作为参数,然后会根据正则表达式去检索字符串。
serach()只会查找第一个,即使设置全局匹配也没用。

        let str = "hello abc hello aec afc";
        let result = str.search(/a[bef]c/);
        document.write(result);  //6

        str = "hello hello aec afc";
        result = str.search(/a[bef]c/);
        document.write(result);  //12

        str = "hello hello hello afc";
        result = str.search(/a[bef]c/);
        document.write(result);  //18

3.量词

通过量词可以设置一个内容出现的次数。量词只对它前边的一个内容起作用

量词描述
n+匹配任何包含至少一个 n 的字符串。
n*匹配任何包含零个或多个 n 的字符串。
n?匹配任何包含零个或一个 n 的字符串。
n{x}匹配包含 X 个 n 的序列的字符串。
n{X,Y}匹配包含 X 至 Y 个 n 的序列的字符串。
n{X,}匹配包含至少 X 个 n 的序列的字符串。
n$匹配任何以 n 结尾的字符串。
^n匹配任何以 n 开头的字符串。
?=n匹配任何其后紧接指定字符串 n 的字符串。
?!n匹配任何其后没有紧接指定字符串 n 的字符串。

表格转载于w3school:JavaScript RegExp 参考手册 (w3school.com.cn)

判断手机号是否合法:

        let PhoneNumber = "13011934214";
        /*
        手机号规定:1.以1开头  2.第二位不能为0,1,2  3.共11位数字,三位以后可以为任意数字
         */
        let reg = /^1[3-9][0-9]{9}$/;
        document.write(reg.test(PhoneNumber)); //true
        PhoneNumber = "12011934214";
        document.write(reg.test(PhoneNumber)); //false

4.元符号

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

元字符描述
.查找单个字符,除了换行符或行终止符。
\w查找单词字符。(任意字母、数字和_)    [A-z0-9_]
\W查找非单词字符。(除了任意字母、数字和_)    [^A-z0-9_]
\d查找数字。        [0-9]
\D查找非数字字符。         [^0-9]
\s查找空白字符。(空格)
\S查找非空白字符。(除了空格)
\b在单词的开头/结尾查找匹配项,开头如下:\bHI,结尾如下:HI\b。
\B查找匹配项,但不在单词的开头/结尾处。
\0查找 NULL 字符。
\n查找换行符。
\f查找换页符。
\r查找回车符。
\t查找制表符。
\v查找垂直制表符。
\xxx查找以八进制数 xxx 规定的字符。
\xdd查找以十六进制数 dd 规定的字符。
\uxxxx查找以十六进制数 xxxx 规定的 Unicode 字符。

关于元符号小数点(.)。 reg = /\./和 reg = new RegExp("\\.");等同,这是字面量和字符串的区别。

        let str = "1325safaf";
        reg = /./;
        document.write(reg.test(str));  //true

        document.write("<br>");

        //匹配字符串中是否有.
        str = "1325safaf";
        reg = /\./;
        document.write(reg.test(str));  //false

        document.write("<br>");

        reg = new RegExp("\\.");
        str = "1325safaf";
        document.write(reg.test(str));  //false

关于\b,查找单词边界

        //查找字符串中是否含有单词child。
        let str = "hello child";
        reg = /child/;
        document.write(reg.test(str));  //true

        document.write("<br>");

        str = "hello children";
        reg = /child/;
        document.write(reg.test(str));  //true,但实际上children和child并不是同一单词

        document.write("<br>");

        str = "hello children";
        reg = /\bchild\b/;
        document.write(reg.test(str));  //false

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值