02 数组 字符串 正则

1 数组方法:

改变原数组:

pop(): 删除数组最后一项。 返回值删除项的值。

push(添加的数据): 在数组最后添加数据,返回新数组的长度

shift():删除数组第一项。 返回值删除项的值。

unshift(添加的数据):数组开头添加数据。。返回新数组的长度

splice(index, 删除个数, 增加的元素) 返回 被删除的成员组成的新数组。没有要删除的成员,则返回空数组。

reverse():表示将原数组的顺序前后颠倒。

sort(): sort()可以不书写参数,表示排序。从小到大排序(对原数组排序)字符串排序顺序:数字,大写字母,小写字母。

sort(function(a, b) { return a-b};  a-b是升序

不改变原数组:

concat(): 用于两个或者多个数组的合并。返回值是合并后的新数组。参数可以是数组字面量、数组变量、散值。

slice(start,end):截取数组片段。start,end表示数组的索引值。包括start不包括end。 书写负数。表示倒数第几。倒数是从-1开始

join():数组转为字符串的方法。默认以逗号连接。 参数表示在数组中成员与成员之间用参数进行连接。

2  字符串方法:

charAt(index)  参数从0开始。返回参数位置的字符。

charCodeAt(index) 参数从0开始。返回参数位置的字符编码

indexOf() 返回指定值的首次出现的索引值。如果字符串中没有该值返回-1

concat()  字符串的拼接。参数也是很灵活,可以书写字面量,变量,散的值等。返回值是拼接后的新字符串

toUpperCase() 将字母转换为大写字母。

toLowerCase() 将字母转换为小写字母。

split() 字符串转为数组。(数组中每一项仍是字符串),参数是切割的标志。不传递不会切割

 

slice(a,b) 从a截到b   参数要:a<b

substr(a,b) 从a截b个  参数b负值截不到

substring(a,b) 从小截到大 负值当0使

配合正则表达式方法

split() 用匹配到的字符切割父字符串返回切割后字符串组成的数组。参数:使用正则

match() 用于匹配字符串,将匹配到的字符串以数组方式输出。参数可以使用字符串或者正则

search()用于首次匹配到的字符串所在的位置。没有全局匹配,搜索不到返回-1

replace()用于将匹配到的字符串替换为新字符串。第一个参数:匹配到的字符串  第二个参数:要替换的新字符串。

var str = 'hello ickt  ickt   icly  abc';

console.log(str.split(' '));
console.log(str.split(/ +/));

console.log(str.match('ickt'));
console.log(str.match(/ic/));

console.log(str.search('ickt'));
console.log(str.search(/ickt/));

var result = str.replace(/ickt/, '爱创课堂');
var result = str.replace(/ickt/, function() {
    // 参数: 匹配的字符串, (还有分组), 所在位置(索引值), 原始字符串
    console.log(arguments);
    return '爱创课堂';
})

3  正则表达式

exec() 用于将首次匹配到的字符串以数组方式输出。没有满足条件的将返回null

test():用于检测字符串中是否含有正则表达式匹配的字符串。

var str = 'hello ickt ickt';
var reg = /ic/;
console.log(reg.test(str)); //结果为true
console.log(reg.exec(str)); //复杂一点的校验,[匹配字符串, 位置, 原始字符串, 分组等]

3.1 操作符

普通字符包括:字母,或者是数字

特殊字符:() {} [] $ \ / | ^ ? * + .  (正则中特殊字符必须使用转义字符转义 \)

3.2 精确匹配

精确匹配:表示匹配的字符串只含有普通字符。

比如检测”abcjkd”中是否含有abc。

/abc/表示匹配到的字符串只含有abc这三个字母,顺序不能颠倒。

3.3 预定义特殊字符

    \n : 换行
​
    \t :制表符
​
    注意:预定义特殊字符是一个整体,不能拆分匹配,必须整体匹配

3.4 修饰符     /abc/img

   g - 执行全局匹配

    i - 忽略大小写的匹配

    m -多行匹配

3.5 字符集

之前的匹配都是一个字符对应一个匹配,假如想让多个字符匹配一个字符。这时需要使用字符集:[]

把所有匹配的可能性都书写在中括号内,用于匹配一个字符。

简单类 直接书写所有的可能性。

比如:[abc]表示匹配到的结果可能是a或者b,或者c。

范围类 表示一类可能性。[0-9] [a-z] [A-Z]

组合类 表示不同类型的范围组合。[0-9a-z] [a-zA-Z]

负向类 表示不包含后面书写匹配字符串的可能性。[^]必须书写在中括号左侧。

3.6 边界

^ 开头匹配。表示以^之后的字符串做为开头的匹配。

$ 结尾匹配。表示以$之前的字符串做为结尾的匹配。

\b 单词边界。用于查找位于单词的开头或结尾的匹配。

\B 非单词边界,用于查找不处在单词的开头或结尾的匹配。

3.7 预定义类

预定一类表示一类字符,是一些特殊字符集的简写。是js提前给我们定义好的

. \n\r 表示除了换行和回车之外的任意字符。

\d [0-9] 表示数字字符。

\D [^0-9] 表示非数字字符。

\s [ \t\n\x0B\f\r] 表示空白字符。

\S [ ^\t\n\x0B\f\r] 表示非空白字符

\w [a-zA-Z_0-9] 表示单词字符(所有的字母/数字/下划线)。

\W [^a-zA-Z_0-9]表示非单词字符

匹配中文:[\u4e00-\u9fa5],是一个固定用法,中文只能在正则表达式里这样表示。

3.8 量词

用于处理一系列紧密相连的同类的数据,通过{}定义量词

{n} 硬性量词。表示出现n次

{n,m} 软性量词。表示至少出现n次最多不能超过m次

{n,} 表示至少出现n次

+ 表示至少出现1次。{1,}

* 表示出现0次或者多次。{0,}

? 表示出现0或者1。{0,1}

分组:   通过()定义分组  \编号(正则表达式中使用),$编号(在正则表达式外使用)

非捕获组:不会创建反向引用的分组

(?=exp) 表示其后紧接指定字符串的字符串

(?!exp) 表示其后没有紧接字符串的字符串

或操作符:|表示可能性,如 a|b|c

var str = 'hello';
str.replace(/he(ll)/, function() {
     console.log(arguments);
})

表示he后面紧跟这ll
str.replace(/he(?=ll)/, function() {
     console.log(arguments);
})

he后面没有紧跟着ll
str.replace(/he(?!ic)/, function() {
     console.log(arguments);
})

以he或者是ic开头的字符串
var reg = /^he|^ic/

4 json:  是 JS 对象的字符串表示法,本质是一个字符串

JSON.stringfy(obj) 将一个对象转换成字符串形式

JSON.parse(str) 将一个字符串转换成对象

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值