js-Date/Math/字符串的方法/正则表达式

Date对象

创建当前日期

var d = new Date();

创建指定日期

var d2 = new Date("09/12/2025 11:11:12");

获取日期内的日

var day = d2.getDate();

获取日期内的周几 0周日 1周一 以此类推

var weekDay = d2.getDay();

获取日期内的月份 0代表1月 1代表2月 以此类推

var month = d2.getMonth();

获取日期内的年份

var year = d2.getFullYear();

获取日期内的时分秒

var hour = d2.getHours();
var minutes = d2.getMinutes();
var seconds = d2.getSeconds();

获取日期内的时间戳

var time = d2.getTime();

获取当前的时间戳

var nowTime = Date.now();

Math对象

是一个工具类,直接使用
圆周率π

Math.PI

绝对值

Math.abs(-1);

向上取整

Math.ceil(1.3);

向下取整

Math.floor(1.5);

四舍五入

Math.round(1.5);

默认生成0-1之间的随机数
生成x-y之间的随机数

Math.random();
Math.round(Math.random()*(y-x) + x);
//生成7-20之间的随机数
for (let i = 0; i < 20; i++) {
    console.log(Math.round(Math.random() * (20 - 7) + 7));
}

获取多个数之间的最大和最小值

Math.max(1,3,4);
Math.min(1,3,4);

获取x的y次幂

Math.pow(x,y);

开平分

Math.sqrt(2);

包装类(了解)

String()Number()Boolean()可以将基本数据类型转换为对象。

var num = new Number(3);

实际是浏览器自己用的,实际开发中我们用的很少。

字符串的方法
在底层字符串是以字符数组的形式保存的,所以可以取length,也可以取下标。

var str = "Hello";
console.log(str.length);//5
console.log(str[1]);//e
console.log(str.charAt(1));//e

返回指定位置字符编码

console.log(str.charCodeAt(1));//101

根据字符编码获取字符

console.log(String.fromCharCode(72));//H

字符串连接

console.log(str.concat("你好","!"))
console.log(str + "你好" + "!");

获取字符串中的索引,如果字符串没有返回-1

console.log(str.indexOf("h"));//从前往后找 -1
console.log(str.lastIndexOf('l'));//从后往前找 3

截取指定位置字符,[) 不包含后面

console.log(str.slice(0,2));//He
console.log(str.substring(0,2));//He 第二个参数不能写复数

根据指定字符拆分字符串为数组

str = "Hello,Hi,How";
console.log(str.split(','));

把字符串中小写大写字母之间互相转换

console.log(str.toLocaleUpperCase());//小写转大写
console.log(str.toLocaleLowerCase());//大写转小写

正则表达式

创建正则表达式对象,

var reg = new RegExp("a");
var reg = /a/i;

检查字符串是否符合规则

var str = "a";
reg.test(str);//true

传第二个参数

i是忽略大小写
g全局匹配

var reg = new RegExp("a","i");
var str = "A";
console.log(reg.test(str));//true

|
[ab]等价a|b
[a-z]任意小写字母
[A-Z]任意大写字母
[A-z]任意字母
[0-9]包含0-9数字
a[bde]c 以a开头c结尾,中间是b或b或e
[^ab] 除了ab以外
[^0-9]除了0-9数字
a{3}等价aaa
(ab){3} == ababab
ab{3} == abbb
a{1,3} 出现1到3次

{n}正好出现n次
{m,n}出现m到n次
{m,}出现m次以上
+至少一次,相当于{1,}
*0个或多个,相当于{0,}
?0个或1个,相当于{0,1}
^a以a开头,与[^a]不同
a$以a结尾

检查手机号是否合法

var str = "13312345678";
var reg = /^1[3-9][0-9]{9}$/;
console.log(reg.test(str));//true

.表示任意字符,可以使用\.

var str = "a.bc";
var reg = /\./;
console.log(reg.test(str));

\w 任意字母、数字以及_ ==[A-z0-9_]
\W除了字母、数字以及_== [^A-z0-9_]
\d任意数字 ==[0-9]
\D除了数字 ==[^0-9]
\s空格
\S除了空格

var str = "   abc   ";
console.log(str.replace(/\s/ig,""));//abc
//除去两端的空格,单词中间的不去除
var str = "    hello Lucy    ";
console.log(str.replace(/[(^/s*)(\s*$)]/ig,""));

\b单词边界
\B除了单词边界

var reg = /\bchild\b/;
console.log(reg.test("a little child"));//true
console.log(reg.test("two children"));//false

字符串方法使用正则表达式
split可以传入正则表达式来把字符串拆分成数组

var str = "1a2b3c4d5e6f7";
console.log(str.split(/[A-z]/));//['1', '2', '3', '4', '5', '6', '7']

寻找字符串中adcadcaec的位置,从左到右寻找第一个

var str = "hello abc hello adc aec";
console.log(str.search(/a[bde]c/));//6

match会返回一个数组,默认只检索第一个

var str = "1a2c3b4d5j6y";
console.log(str.match(/[A-z]/));//['a']
console.log(str.match(/[A-z]/gi));//['a', 'c', 'b', 'd', 'j', 'y']

replace可以让字符串中指定内容替换成新的内容,默认也会值替换第一位

var str = "1a2c3b4d5j6y";
console.log(str.replace(/[a-z]/gi,"-"))//1-2-3-4-5-6-

邮件的正则

var str = "mail@163.com";
var reg = /^\w{3,}(\.\w+)*@[A-z0-9]+(\.[A-z]{2,5}){1,2}$/
console.log(reg.test(str));
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容