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) 将一个字符串转换成对象