目录

一、数组的剩余方法

二、函数的方法

三、arguments

四、Date

五、Math

六、包装类

七、字符串的相关方法

八、正则表达式

九、正则表达式

十、字符串和正则相关的方法


一、数组的剩余方法

var arr = ["孙悟空","猪八戒","沙和尚"];
var arr2 = ["白骨精","玉兔精","蜘蛛精"];
var arr3 = ["二郎神","太上老君","玉皇大帝"];

concat() 

concat()可以连接两个或多个数组,并将新的数组返回

- 该方法不会对原数组产生影响


var result = arr.concat(arr2);

console.log(result);

输出:"孙悟空,猪八戒,沙和尚,白骨精,玉兔精,蜘蛛精”

var result = arr.concat(arr2,arr3);

console.log(result);

输出:"孙悟空,猪八戒,沙和尚,白骨精,玉兔精,蜘蛛精,二郎神,太上老君,玉皇大帝”

var result = arr.concat(arr2,arr3,"牛魔王","铁扇公主");

console.log(result);

输出:"孙悟空,猪八戒,沙和尚,白骨精,玉兔精,蜘蛛精,二郎神,太上老君,玉皇大帝,牛魔王,铁扇公主"

join()

- 该方法可以将数组转换为一个字符串

- 该方法不会对原数组产生影响,而是将转换后的字符串作为结果返回

- 在join()中可以指定一个字符串作为参数,这个字符串将会成为数组中元素的连接符

如果不指定连接符,则默认使用,作为连接符


arr = ["孙悟空","猪八戒","沙和尚","唐僧"];

result = arr.join("@-@");

输出 "孙悟空@-@猪八戒@-@沙和尚@-@唐僧"

reverse() 

*  - 该方法用来反转数组(前边的去后边,后边的去前边)

*  - 该方法会直接修改原数组


          arr = ["孙悟空","猪八戒","沙和尚","唐僧"];

arr.reverse();

console.log(arr);

输出:"唐僧,沙和尚,猪八戒,孙悟空"

sort() 

- 可以用来对数组中的元素进行排序

- 也会影响原数组,默认会按照Unicode编码进行排序


arr = ["b","d","e","a","c"];
            arr.sort();
            console.log(arr);

输出:"a,b,c,d,e"


即使对于纯数字的数组,使用sort()排序时,也会按照Unicode编码来排序,

所以对数字进排序时,可能会得到错误的结果。

我们可以自己来指定排序的规则

我们可以在sort()添加一个回调函数,来指定排序规则,

回调函数中需要定义两个形参,

浏览器将会分别使用数组中的元素作为实参去调用回调函数

使用哪个元素调用不确定,但是肯定的是在数组中a一定在b前边

- 浏览器会根据回调函数的返回值来决定元素的顺序,

如果返回一个大于0的值,则元素会交换位置

如果返回一个小于0的值,则元素位置不变

如果返回一个0,则认为两个元素相等,也不交换位置

- 如果需要升序排列,则返回 a-b

如果需要降序排列,则返回b-a


arr = [5,4,2,1,3,6,8,7];

arr.sort(function(a,b){

//降序排列(方法一)

if(a > b){

return -1;

}else if(a < b){

return 1;

}else{

return 0;

}

//升序排列(方法二)

//return a - b;

//降序排列

return b - a;

});

console.log(arr);

源代码解析:

<!DOCTYPE html>
<html><head><meta charset="utf-8" /><title></title><script type="text/javascript">var arr = ["孙悟空","猪八戒","沙和尚"];var arr2 = ["白骨精","玉兔精","蜘蛛精"];var arr3 = ["二郎神","太上老君","玉皇大帝"];/** concat()可以连接两个或多个数组,并将新的数组返回*     - 该方法不会对原数组产生影响*/var result = arr.concat(arr2,arr3,"牛魔王","铁扇公主");/** join()*   - 该方法可以将数组转换为一个字符串*     - 该方法不会对原数组产生影响,而是将转换后的字符串作为结果返回*    - 在join()中可以指定一个字符串作为参数,这个字符串将会成为数组中元素的连接符*      如果不指定连接符,则默认使用,作为连接符*/arr = ["孙悟空","猪八戒","沙和尚","唐僧"];result = arr.join("@-@");/** reverse()*   - 该方法用来反转数组(前边的去后边,后边的去前边)*    - 该方法会直接修改原数组*/arr.reverse();//console.log(arr);arr = ["b","d","e","a","c"];/** sort()*  - 可以用来对数组中的元素进行排序*  - 也会影响原数组,默认会按照Unicode编码进行排序*/arr.sort();//arr.reverse();/** 即使对于纯数字的数组,使用sort()排序时,也会按照Unicode编码来排序,*  所以对数字进排序时,可能会得到错误的结果。* * 我们可以自己来指定排序的规则*     我们可以在sort()添加一个回调函数,来指定排序规则,*         回调函数中需要定义两个形参,*         浏览器将会分别使用数组中的元素作为实参去调用回调函数*         使用哪个元素调用不确定,但是肯定的是在数组中a一定在b前边*   - 浏览器会根据回调函数的返回值来决定元素的顺序,*       如果返回一个大于0的值,则元素会交换位置*        如果返回一个小于0的值,则元素位置不变*         如果返回一个0,则认为两个元素相等,也不交换位置* *   - 如果需要升序排列,则返回 a-b*      如果需要降序排列,则返回b-a*/arr = [5,4,2,1,3,6,8,7];arr.sort(function(a,b){//前边的大/*if(a > b){return -1;}else if(a < b){return 1;}else{return 0;}*///升序排列//return a - b;//降序排列return b - a;});console.log(arr);</script></head><body></body>
</html>

二、函数的方法

call()和apply()

- 这两个方法都是函数对象的方法,需要通过函数对象来调用

- 当对函数调用call()和apply()都会调用函数执行

- 在调用call()和apply()可以将一个对象指定为第一个参数

此时这个对象将会成为函数执行时的this

- call()方法可以将实参在对象之后依次传递

- apply()方法需要将实参封装到一个数组中统一传递


- this的情况:

1.以函数形式调用时,this永远都是window

2.以方法的形式调用时,this是调用方法的对象

3.以构造函数的形式调用时,this是新创建的那个对象

4.使用call和apply调用时,this是指定的那个对象

源代码解析:

<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title></title><script type="text/javascript">function fun(a,b) {console.log("a = "+a);console.log("b = "+b);//alert(this);}var obj = {name: "obj",sayName:function(){alert(this.name);}};/** call()和apply()*    - 这两个方法都是函数对象的方法,需要通过函数对象来调用*    - 当对函数调用call()和apply()都会调用函数执行*     - 在调用call()和apply()可以将一个对象指定为第一个参数*         此时这个对象将会成为函数执行时的this*   - call()方法可以将实参在对象之后依次传递*   - apply()方法需要将实参封装到一个数组中统一传递* *     - this的情况:*      1.以函数形式调用时,this永远都是window*       2.以方法的形式调用时,this是调用方法的对象*        3.以构造函数的形式调用时,this是新创建的那个对象*         4.使用call和apply调用时,this是指定的那个对象*///fun.call(obj,2,3);fun.apply(obj,[2,3]);var obj2 = {name: "obj2"};/*fun.apply();fun.call();fun();*///fun.call(obj);//fun.apply(obj);//fun();//obj.sayName.apply(obj2);//object</script></head><body></body></html>

三、arguments

在调用函数时,浏览器每次都会传递进两个隐含的参数:

1.函数的上下文对象 this

2.封装实参的对象 arguments

- arguments是一个类数组对象,它也可以通过索引来操作数据,也可以获取长度

- 在调用函数时,我们所传递的实参都会在arguments中保存

- arguments.length可以用来获取实参的长度

- 我们即使不定义形参,也可以通过arguments来使用实参,

只不过比较麻烦

arguments[0] 表示第一个实参

arguments[1] 表示第二个实参 。。。

- 它里边有一个属性叫做callee,

这个属性对应一个函数对象,就是当前正在指向的函数的对象

源代码解析:

<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title></title><script type="text/javascript">/** 在调用函数时,浏览器每次都会传递进两个隐含的参数:*  1.函数的上下文对象 this*    2.封装实参的对象 arguments*        - arguments是一个类数组对象,它也可以通过索引来操作数据,也可以获取长度*       - 在调用函数时,我们所传递的实参都会在arguments中保存* *      - arguments.length可以用来获取实参的长度* *        - 我们即使不定义形参,也可以通过arguments来使用实参,*             只不过比较麻烦*            arguments[0] 表示第一个实参*           arguments[1] 表示第二个实参 。。。*       - 它里边有一个属性叫做callee,*             这个属性对应一个函数对象,就是  当前正在指向的函数的对象(就是function......})*      */function fun(a,b){//console.log(arguments instanceof Array); //检验不是数组,flaae//console.log(Array.isArray(arguments));//检验不是数组,flaae//console.log(arguments[1]);//console.log(arguments.length);console.log(arguments.callee == fun);//true}fun("hello",true);//长度为2</script></head><body></body>
</html>

四、Date

 Date对象

       - 在JS中使用Date对象来表示一个时间

创建一个Date对象

如果直接使用构造函数创建一个Date对象,则会封装为当前代码执行的时间

var d = new Date();


创建一个指定的时间对象

需要在构造函数中传递一个表示时间的字符串作为参数

日期的格式  月份/日/年 时:分:秒

var d2 = new Date("2/18/2011 11:10:30");


getDate()

- 获取当前日期对象是几日
               var date = d2.getDate();


getDay()

- 获取当前日期对象时周几

- 会返回一个0-6的值

0 表示周日

1表示周一

。。。

var day = d2.getDay();


getMonth()

d2 = new Date("12/18/2011 11:10:30");

- 获取当前时间对象的月份

- 会返回一个0-11的值

0 表示1月

1 表示2月

11 表示12月

var month = d2.getMonth();


getFullYear()

- 获取当前日期对象的年份

var year = d2.getFullYear();


getTime()

- 获取当前日期对象的时间戳

- 时间戳,指的是从格林威治标准时间的1970年1月1日,0时0分0秒

到当前日期所花费的毫秒数(1秒 = 1000毫秒)

- 计算机底层在保存时间时使用都是时间戳

var time = d2.getTime();

console.log(time/1000/60/60/24/365);


利用时间戳来测试代码的执行的性能

获取当前的时间戳

var start = Date.now();

for(var i=0 ; i<100 ; i++){

console.log(i);

}

var end = Date.now();

console.log("执行了:"+(end - start)+"毫秒");

源代码解析:

<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title></title><script type="text/javascript">/** Date对象*   - 在JS中使用Date对象来表示一个时间*///创建一个Date对象//如果直接使用构造函数创建一个Date对象,则会封装为当前代码执行的时间var d = new Date();//创建一个指定的时间对象//需要在构造函数中传递一个表示时间的字符串作为参数//日期的格式  月份/日/年 时:分:秒var d2 = new Date("2/18/2011 11:10:30");/** getDate()*    - 获取当前日期对象是几日*/var date = d2.getDate();/** getDay()*   - 获取当前日期对象时周几*  - 会返回一个0-6的值*       0 表示周日*         1表示周一*      。。。*/var day = d2.getDay();/** getMonth()* d2 = new Date("12/18/2011 11:10:30");* - 获取当前时间对象的月份*    - 会返回一个0-11的值*      0 表示1月*         1 表示2月*         11 表示12月*/var month = d2.getMonth();/** getFullYear()*     - 获取当前日期对象的年份*/var year = d2.getFullYear();//console.log(d2);//console.log("date = "+date);//console.log("day = "+day);//console.log("month = "+month);//console.log(year);/** getTime()*  - 获取当前日期对象的时间戳*     - 时间戳,指的是从格林威治标准时间的1970年1月1日,0时0分0秒*      到当前日期所花费的毫秒数(1秒 = 1000毫秒)*   - 计算机底层在保存时间时使用都是时间戳*/var time = d2.getTime();//console.log(time/1000/60/60/24/365);/*var d3 = new Date("1/1/1970 0:0:0");time = d3.getTime();console.log(time);*///利用时间戳来测试代码的执行的性能//获取当前的时间戳var start = Date.now();for(var i=0 ; i<100 ; i++){console.log(i);}var end = Date.now();console.log("执行了:"+(end - start)+"毫秒");</script></head><body></body>
</html>

五、Math

Math

- Math和其他的对象不同,它不是一个构造函数,

它属于一个工具类不用创建对象,它里边封装了数学运算相关的属性和方法

- 比如

Math.PI 表示的圆周率

console.log(Math.PI);


abs()

abs()可以用来计算一个数的绝对值

console.log(Math.abs(-1));


Math.ceil()

- 可以对一个数进行向上取整,小数位只有有值就自动进1

Math.floor()

- 可以对一个数进行向下取整,小数部分会被舍掉

Math.round()

- 可以对一个数进行四舍五入取整

console.log(Math.ceil(1.1));

console.log(Math.floor(1.99));

console.log(Math.round(1.4));


Math.random()

- 可以用来生成一个0-1之间的随机数

- 生成一个0-10的随机数

- 生成一个0-x之间的随机数

Math.round(Math.random()*x)

- 生成一个1-10

- 生成一个x-y之间的随机数

Math.round(Math.random()*(y-x)+x)


max() 可以获取多个数中的最大值

min() 可以获取多个数中的最小值

var max = Math.max(10,45,30,100);

var min = Math.min(10,45,30,100);


Math.pow(x,y)

返回x的y次幂

console.log(Math.pow(12,3));


Math.sqrt()

用于对一个数进行开方运算

console.log(Math.sqrt(2));

源代码解析:

<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title></title><script type="text/javascript">/** Math*     - Math和其他的对象不同,它不是一个构造函数,*        它属于一个工具类不用创建对象,它里边封装了数学运算相关的属性和方法*   - 比如*       Math.PI 表示的圆周率*///console.log(Math.PI);/** abs()可以用来计算一个数的绝对值*///console.log(Math.abs(-1));/** Math.ceil()*     - 可以对一个数进行向上取整,小数位只有有值就自动进1* Math.floor()*   - 可以对一个数进行向下取整,小数部分会被舍掉* Math.round()*   - 可以对一个数进行四舍五入取整*///console.log(Math.ceil(1.1));//console.log(Math.floor(1.99));//console.log(Math.round(1.4));/** Math.random()*   - 可以用来生成一个0-1之间的随机数*  - 生成一个0-10的随机数*   - 生成一个0-x之间的随机数*        Math.round(Math.random()*x)* *  - 生成一个1-10*     - 生成一个x-y之间的随机数*        Math.round(Math.random()*(y-x)+x)*//*for(var i=0 ; i<100 ; i++){//console.log(Math.round(Math.random()*10));//console.log(Math.round(Math.random()*20));//console.log(Math.round(Math.random()*9)+1);//console.log(Math.round(Math.random()*8)+2);//生成1-6之间的随机数console.log(Math.round(Math.random()*5+1));}*//** max() 可以获取多个数中的最大值* min() 可以获取多个数中的最小值*/var max = Math.max(10,45,30,100);var min = Math.min(10,45,30,100);//console.log(min);/** Math.pow(x,y)*    返回x的y次幂*///console.log(Math.pow(12,3));/** Math.sqrt()*  用于对一个数进行开方运算*/console.log(Math.sqrt(2));</script></head><body></body>
</html>

六、包装类

基本数据类型

String

Number

Boolean

Null

Undefined

引用数据类型

Object

在JS中为我们提供了三个包装类,通过这三个包装类可以将基本数据类型的数据转换为对象

String()

- 可以将基本数据类型字符串转换为String对象

Number()

- 可以将基本数据类型的数字转换为Number对象

Boolean()

- 可以将基本数据类型的布尔值转换为Boolean对象

但是注意:我们在实际应用中不会使用基本数据类型的对象,

如果使用基本数据类型的对象,在做一些比较时可能会带来一些不可预期的结果

var num = new Number(3);
var num2 = new Number(3);
var str = new String("hello");
var str2 = new String("hello");
var bool = new Boolean(true);

方法和属性只能添加给对象,不能添加给基本数据类型

当我们对一些基本数据类型的值去调用属性和方法时,

浏览器会临时使用包装类将其转换为对象,然后在调用对象的属性和方法

调用完以后,在将其转换为基本数据类型

var s = 123;
s = s.toString();
s.hello = "你好";
console.log(s.hello);
console.log(typeof s);

源代码解析:

<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title></title><script type="text/javascript">/** 基本数据类型*   String Number Boolean Null Undefined* 引用数据类型*   Object* * 在JS中为我们提供了三个包装类,通过这三个包装类可以将基本数据类型的数据转换为对象*     String()*       - 可以将基本数据类型字符串转换为String对象*  Number()*       - 可以将基本数据类型的数字转换为Number对象*  Boolean()*      - 可以将基本数据类型的布尔值转换为Boolean对象*    但是注意:我们在实际应用中不会使用基本数据类型的对象,*      如果使用基本数据类型的对象,在做一些比较时可能会带来一些不可预期的结果*///创建一个Number类型的对象//num = 3;var num = new Number(3);var num2 = new Number(3);var str = new String("hello");var str2 = new String("hello");var bool = new Boolean(true);var bool2 = true;//向num中添加一个属性num.hello = "abcdefg";//console.log(str === str2);var b = new Boolean(false);/*if(b){alert("我运行了~~~");}*//** 方法和属性只能添加给对象,不能添加给基本数据类型*   当我们对一些基本数据类型的值去调用属性和方法时,*        浏览器会临时使用包装类将其转换为对象,然后在调用对象的属性和方法*        调用完以后,在将其转换为基本数据类型*/var s = 123;s = s.toString();s.hello = "你好";console.log(s.hello);//console.log(typeof s);</script></head><body></body>
</html>

七、字符串的相关方法

//创建一个字符串
var str = "Hello Atguigu";

在底层字符串是以字符数组的形式保存的

["H","e","l"]


length属性

- 可以用来获取字符串的长度

console.log(str.length);

console.log(str[5]);


charAt()

- 可以返回字符串中指定位置的字符

- 根据索引获取指定的字符

str = "中Hello Atguigu";

var result = str.charAt(6);


charCodeAt()

- 获取指定位置字符的字符编码(Unicode编码)

result = str.charCodeAt(0);


formCharCode()

- 可以根据字符编码去获取字符

result = String.fromCharCode(0x2692);


concat()

- 可以用来连接两个或多个字符串

- 作用和+一样

result = str.concat("你好","再见");


indexof()

- 该方法可以检索一个字符串中是否含有指定内容

- 如果字符串中含有该内容,则会返回其第一次出现的索引

如果没有找到指定的内容,则返回-1

- 可以指定一个第二个参数,指定开始查找的位置


lastIndexOf();

- 该方法的用法和indexOf()一样,

不同的是indexOf是从前往后找,

而lastIndexOf是从后往前找

- 也可以指定开始查找的位置

str = "hello hatguigu";

result = str.indexOf("h",1);

result = str.lastIndexOf("h",5);


slice()

- 可以从字符串中截取指定的内容

- 不会影响原字符串,而是将截取到内容返回

- 参数:

第一个,开始位置的索引(包括开始位置)

第二个,结束位置的索引(不包括结束位置)

- 如果省略第二个参数,则会截取到后边所有的

- 也可以传递一个负数作为参数,负数的话将会从后边计算

str = "abcdefghijk";

result = str.slice(1,4);

result = str.slice(1,-1);


substring()

- 可以用来截取一个字符串,可以slice()类似

- 参数:

- 第一个:开始截取位置的索引(包括开始位置)

- 第二个:结束位置的索引(不包括结束位置)

- 不同的是这个方法不能接受负值作为参数,

如果传递了一个负值,则默认使用0

- 而且他还自动调整参数的位置,如果第二个参数小于第一个,则自动交换

result = str.substring(0,1);


substr()

- 用来截取字符串

- 参数:

1.截取开始位置的索引

2.截取的长度

str = "abcdefg";

result = str.substr(3,2);


split()

- 可以将一个字符串拆分为一个数组

- 参数:

-需要一个字符串作为参数,将会根据该字符串去拆分数组

str = "abcbcdefghij";

result = str.split("d");

如果传递一个空串作为参数,则会将每个字符都拆分为数组中的一个元素

result = str.split("");

console.log(Array.isArray(result));

console.log(result[0]);

console.log(result);

str = "abcdefg";


toUpperCase()

- 将一个字符串转换为大写并返回

result = str.toUpperCase();

str = "ABCDEFG";


toLowerCase()

-将一个字符串转换为小写并返回

result = str.toLowerCase();

console.log(result);

源代码解析:

<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title></title><script type="text/javascript">//创建一个字符串var str = "Hello Atguigu";/** 在底层字符串是以字符数组的形式保存的* ["H","e","l"]*//** length属性*  - 可以用来获取字符串的长度*///console.log(str.length);//console.log(str[5]);/** charAt()*   - 可以返回字符串中指定位置的字符*  - 根据索引获取指定的字符   */str = "中Hello Atguigu";var result = str.charAt(6);/** charCodeAt()*   - 获取指定位置字符的字符编码(Unicode编码)*/result = str.charCodeAt(0);/** String.formCharCode()*    - 可以根据字符编码去获取字符*/result = String.fromCharCode(0x2692);/** concat()*    - 可以用来连接两个或多个字符串*   - 作用和+一样*/result = str.concat("你好","再见");/** indexof()*   - 该方法可以检索一个字符串中是否含有指定内容*    - 如果字符串中含有该内容,则会返回其第一次出现的索引*         如果没有找到指定的内容,则返回-1*   - 可以指定一个第二个参数,指定开始查找的位置* * lastIndexOf();*   - 该方法的用法和indexOf()一样,*       不同的是indexOf是从前往后找,*      而lastIndexOf是从后往前找*     - 也可以指定开始查找的位置*/str = "hello hatguigu";result = str.indexOf("h",1);result = str.lastIndexOf("h",5);/** slice()*    - 可以从字符串中截取指定的内容*   - 不会影响原字符串,而是将截取到内容返回*   - 参数:*       第一个,开始位置的索引(包括开始位置)*       第二个,结束位置的索引(不包括结束位置)*          - 如果省略第二个参数,则会截取到后边所有的*      - 也可以传递一个负数作为参数,负数的话将会从后边计算*/str = "abcdefghijk";result = str.slice(1,4);result = str.slice(1,-1);/** substring()*  - 可以用来截取一个字符串,可以slice()类似*   - 参数:*       - 第一个:开始截取位置的索引(包括开始位置)*       - 第二个:结束位置的索引(不包括结束位置)*        - 不同的是这个方法不能接受负值作为参数,*           如果传递了一个负值,则默认使用0*        - 而且他还自动调整参数的位置,如果第二个参数小于第一个,则自动交换*/result = str.substring(0,1);/** substr()*    - 用来截取字符串*  - 参数:*       1.截取开始位置的索引*        2.截取的长度*/str = "abcdefg";result = str.substr(3,2);/** split()*  - 可以将一个字符串拆分为一个数组*  - 参数:*       -需要一个字符串作为参数,将会根据该字符串去拆分数组*/str = "abcbcdefghij";result = str.split("d");/** 如果传递一个空串作为参数,则会将每个字符都拆分为数组中的一个元素*/result = str.split("");//console.log(Array.isArray(result));//console.log(result[0]);console.log(result);str = "abcdefg";/** toUpperCase()*    - 将一个字符串转换为大写并返回*/result = str.toUpperCase();str = "ABCDEFG";/** toLowerCase()*     -将一个字符串转换为小写并返回*/result = str.toLowerCase();//console.log(result);</script></head><body></body>
</html>

八、正则表达式

正则表达式

- admin@atguigu.com

- admin@.com   adminatguigu.com

- 邮件的规则:

1.前边可以是xxxx乱七八糟

2.跟着一个@

3.后边可以是xxxx乱七八糟

4..com获取其他的乱七八糟

- 正则表达式用于定义一些字符串的规则,

计算机可以根据正则表达式,来检查一个字符串是否符合规则,

获取将字符串中符合规则的内容提取出来

创建正则表达式的对象

语法:

var 变量 = new RegExp("正则表达式","匹配模式");

使用typeof检查正则对象,会返回object

var reg = new RegExp("a"); 这个正则表达式可以来检查一个字符串中是否含有a

在构造函数中可以传递一个匹配模式作为第二个参数,

可以是

i 忽略大小写

g 全局匹配模式

var reg = new RegExp("ab");

console.log(reg); //  /a/

var reg = new RegExp("ab","i");


正则表达式的方法:

test()

- 使用这个方法可以用来检查一个字符串是否符合正则表达式的规则,

如果符合则返回true,否则返回false

var str = "a";

var result = reg.test(str);

源代码解析:

<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title></title><script type="text/javascript">/** 正则表达式*    - admin@atguigu.com*  - admin@.com   adminatguigu.com*  - 邮件的规则:*      1.前边可以是xxxx乱七八糟*        2.跟着一个@*       3.后边可以是xxxx乱七八糟*        4..com获取其他的乱七八糟* *  - 正则表达式用于定义一些字符串的规则,*        计算机可以根据正则表达式,来检查一个字符串是否符合规则,*         获取将字符串中符合规则的内容提取出来*///创建正则表达式的对象/** 语法:*     var 变量 = new RegExp("正则表达式","匹配模式");*  使用typeof检查正则对象,会返回object*    var reg = new RegExp("a"); 这个正则表达式可以来检查一个字符串中是否含有a* 在构造函数中可以传递一个匹配模式作为第二个参数,*         可以是 *           i 忽略大小写 *           g 全局匹配模式*/var reg = new RegExp("ab","i");var str = "a";/** 正则表达式的方法:*    test()*      - 使用这个方法可以用来检查一个字符串是否符合正则表达式的规则,*       如果符合则返回true,否则返回false*/var result = reg.test(str);//console.log(result);console.log(reg.test("Ac"));</script></head><body></body>
</html>

九、正则表达式

使用字面量来创建正则表达式

语法:var 变量 = /正则表达式/匹配模式

使用字面量的方式创建更加简单

使用构造函数创建更加灵活

var reg = /a/i;

创建一个正则表达式,检查一个字符串中是否有a或b

使用 | 表示或者的意思

reg = /a|b|c/;


创建一个正则表达式检查一个字符串中是否有字母

reg = /a|b|c|d|e|f|g/;


[]里的内容也是或的关系

[ab] == a|b

[a-z] 任意小写字母

[A-Z] 任意大写字母

[A-z] 任意字母

[0-9] 任意数字

reg = /[A-z]/;


检查一个字符串中是否含有 abc 或 adc 或 aec

reg = /a[bde]c/;


[^ ] 除了

reg = /[^ab]/;

reg = /[^0-9]/;

源代码解析:

<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title></title><script type="text/javascript">/** 使用字面量来创建正则表达式*    语法:var 变量 = /正则表达式/匹配模式* 使用字面量的方式创建更加简单*    使用构造函数创建更加灵活* *///var reg = new RegExp("a","i");var reg = /a/i;//console.log(typeof reg);//console.log(reg.test("abc"));//创建一个正则表达式,检查一个字符串中是否有a或b/** 使用 | 表示或者的意思*/reg = /a|b|c/;/** 创建一个正则表达式检查一个字符串中是否有字母*///reg = /a|b|c|d|e|f|g/;/** []里的内容也是或的关系* [ab] == a|b* [a-z] 任意小写字母* [A-Z] 任意大写字母* [A-z] 任意字母* [0-9] 任意数字*/reg = /[A-z]/;//检查一个字符串中是否含有 abc 或 adc 或 aecreg = /a[bde]c/;/** [^ ] 除了*/reg = /[^ab]/;reg = /[^0-9]/;console.log(reg.test("12a3456"));</script></head><body></body>
</html>

十、字符串和正则相关的方法

split()

- 可以将一个字符串拆分为一个数组

- 方法中可以传递一个正则表达式作为参数,这样方法将会根据正则表达式去拆分字符串

- 这个方法即使不指定全局匹配,也会全都插分

根据任意字母来将字符串拆分

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


search()

- 可以搜索字符串中是否含有指定内容

- 如果搜索到指定内容,则会返回第一次出现的索引,如果没有搜索到返回-1

- 它可以接受一个正则表达式作为参数,然后会根据正则表达式去检索字符串

- serach()只会查找第一个,即使设置全局匹配也没用

str = "hello abc hello aec afc";
/** 搜索字符串中是否含有abc 或 aec 或 afc*/
result = str.search(/a[bef]c/);console.log(result);

match()

- 可以根据正则表达式,从一个字符串中将符合条件的内容提取出来

- 默认情况下我们的match只会找到第一个符合要求的内容,找到以后就停止检索

我们可以设置正则表达式为全局匹配模式,这样就会匹配到所有的内容

可以为一个正则表达式设置多个匹配模式,且顺序无所谓

- match()会将匹配到的内容封装到一个数组中返回,即使只查询到一个结果

str = "1a2a3a4a5e6f7A8B9C";
result = str.match(/[a-z]/ig);
console.log(result[6]);//A

replace()

- 可以将字符串中指定内容替换为新的内容

- 参数:

1.被替换的内容,可以接受一个正则表达式作为参数

2.新的内容

- 默认只会替换第一个

result = str.replace(/[a-z]/gi , "");console.log(result);

源代码解析:

<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title></title><script type="text/javascript">var str = "1a2b3c4d5e6f7";/** split()*     - 可以将一个字符串拆分为一个数组*  - 方法中可以传递一个正则表达式作为参数,这样方法将会根据正则表达式去拆分字符串*    - 这个方法即使不指定全局匹配,也会全都插分*//** 根据任意字母来将字符串拆分*/var result = str.split(/[A-z]/);//console.log(result);/** search()*  - 可以搜索字符串中是否含有指定内容*     - 如果搜索到指定内容,则会返回第一次出现的索引,如果没有搜索到返回-1*     - 它可以接受一个正则表达式作为参数,然后会根据正则表达式去检索字符串*     - serach()只会查找第一个,即使设置全局匹配也没用*/str = "hello abc hello aec afc";/** 搜索字符串中是否含有abc 或 aec 或 afc*/result = str.search(/a[bef]c/);//console.log(result);/** match()*  - 可以根据正则表达式,从一个字符串中将符合条件的内容提取出来*     - 默认情况下我们的match只会找到第一个符合要求的内容,找到以后就停止检索*         我们可以设置正则表达式为全局匹配模式,这样就会匹配到所有的内容*         可以为一个正则表达式设置多个匹配模式,且顺序无所谓*   - match()会将匹配到的内容封装到一个数组中返回,即使只查询到一个结果* *    */str = "1a2a3a4a5e6f7A8B9C";result = str.match(/[a-z]/ig);//console.log(result[2]);/** replace()*  - 可以将字符串中指定内容替换为新的内容*  - 参数:*        1.被替换的内容,可以接受一个正则表达式作为参数*        2.新的内容*  - 默认只会替换第一个*///result = str.replace(/[a-z]/gi , "@_@");result = str.replace(/[a-z]/gi , "");//console.log(result);</script></head><body></body>
</html>

尚硅谷JS笔记-数组的剩余方法、函数的方法 、arguments 、Date、Math、包装类、字符串的相关方法、正则表达式、字符串和正则相关的方法的总结及归纳相关推荐

  1. 尚硅谷_CSS3 笔记

    目录 什么是CSS3 选择器 基本选择器及其扩展 属性选择器 伪类与伪元素选择器 css声明的优先级 自定义字体&字体图标 复习1 新的UI方案 文本新增样式 opacity RGBA 文字阴 ...

  2. 尚硅谷 jQuery 笔记(张晓飞 2018)

    title: 尚硅谷 jQuery 笔记 date: 2020-11-24 21:40:50 toc: true description: jQuery是JS的一个封装的库函数集,用于DOM的CRUD ...

  3. Java 基础 第3阶段:高级应用——尚硅谷学习笔记(含面试题) 2023年

    Java 基础 第 3 阶段:高级应用--尚硅谷学习笔记(含面试题) 2023 年 Java 基础 第 3 阶段:高级应用--尚硅谷学习笔记(含面试题) 2023 年 第 9 章 异常处理 9.1 异 ...

  4. 尚硅谷JavaSE笔记(四)

    系列文章目录 尚硅谷JavaSE笔记(一) 尚硅谷JavaSE笔记(二) 尚硅谷JavaSE笔记(三) 尚硅谷JavaSE笔记(四) 文章目录 十六.File 类与 IO 流 1.java.io.Fi ...

  5. B站MySQL(尚硅谷)学习笔记

    B站MySQL基础(尚硅谷)学习笔记 最近在学习数据库技术,并且把视频中的知识点进行了汇总,字数较多,仅供参考. 会持续更新 欢迎读者提出问题与错误,一起交流~ 视频前几集所讲述的基本知识: DB:数 ...

  6. 尚硅谷vue笔记 详细讲解版(尚硅谷 天禹老师)

    视频:[尚硅谷Vue2.0+Vue3.0全套教程丨vuejs从入门到精通]https://www.bilibili.com/video/BV1Zy4y1K7SH?vd_source=10e3dfac9 ...

  7. 尚硅谷设计模式笔记-装饰者模式

    文章目录 一.需求 二.装饰者方法 三.装饰者模式的JDK应用 笔记来源: 尚硅谷 一.需求 星巴克咖啡订单项目(咖啡馆) : 咖啡种类/单品咖啡: Espresso(意大利浓咖啡). ShortBl ...

  8. 尚硅谷 JavaScript 笔记(张晓飞 2019 高级版)

    目录 数据类型 数据,变量,与内存 对象 函数 回调函数 IIFE 函数中的this JS的分号问题 prototype 显式原型与隐式原型 原型链 构造函数,原型等原型链之间的关系图与解释 原型链的 ...

  9. 尚硅谷_Redis6笔记

    该博客参考尚硅谷Redis6视频资料完成,仅用于学习使用,如有侵权,请联系删除 1.NoSQL数据库简介 1.NoSQL数据库 1.NoSQL数据库概述 NoSQL(NoSQL = Not Only ...

最新文章

  1. HDU1531(差分约束+Bellman_ford)
  2. 浅谈无人机的应用场景
  3. Python--三元运算与lambda表达式
  4. 列表逆向排列的几种实现形式
  5. ChaosBlade:从混沌工程实验工具到混沌工程平台
  6. 入库成本与目标成本对比报表中我学到的东西
  7. 计算机操作员可以免考自考吗,计算机《职业资格证书》可以免考高
  8. html ajax提交表单实例,jQuery使用$.ajax提交表单完整实例
  9. 什么是实践中真正在用的数据科学系统?
  10. 对于函数式编程的新理解
  11. java连接mysql抛异常_Java 连接MySQL数据库 插入中文 抛出异常
  12. 计算机安全的重要性 小论文,网络安全的重要性初中议论文
  13. 【思维、费马小定理】CQXYM Count Permutations
  14. html代码在线高亮美化,代码语法高亮美化显示插件CodeMirror
  15. shopnc定时任务
  16. Kubernetes 认证
  17. [kuangbin带你飞]专题四 最短路练习 R
  18. PCL点云(平面点云)分割:Plane Model Segmentation
  19. vue人力管理_springboot+vue微人事人力资源管理系统,前后台分离源码
  20. 移动SEO之页面优化

热门文章

  1. 【毕业设计_课程设计】基于SSM框架的仓库管理系统
  2. android homme2016款,丁日的最爱:Android Homme。WTF!安卓家?
  3. 将二维数据画成三维图形
  4. SpringBoot从入门到精通教程(八):集成ElasticSearch
  5. 机器学习4. 贝叶斯
  6. hdu6217 - BBP Formula
  7. 一键生成轮播图,轮播图插件
  8. 解决SVN不显示绿色小对勾
  9. 1134:猴子与香蕉 dp
  10. 留数的相关概念及定理