首页 > 代码库 > javascript基础---正则表达式和字符串,数组
javascript基础---正则表达式和字符串,数组
一、正则表达式
1.正则表达式的创建方法
var re=/abc/;
var re=new RegExp("abc")
var re=new RegExp(/abc/);
2.正则表达式语法
2.1简单语法
c表示一个或者多个普通字符
{n}:表示匹配的次数
{n,}:表示匹配的次数》=n
{n,m}:表示匹配的次数》n,<m
\:表示转义的次数
^:表示匹配输入的字符串的开始位置(在被匹配的字符串的开始部分 来匹配)
$:表示匹配输入字符串的结束位置(在被匹配的字符串的结束部分 来匹配)
*:》=0;
+:>=1;
?:0或者1;当他和其他字符结合起来用的话就是 非贪心匹配。
下面这些都是匹配一个字符的:
x|y:表示字符串匹配x或者Y 都算匹配成功
[xyz]:表示能匹配 xyz中的任意字符 eg:匹配extend中的x.
[^xyz]除了xyz之外的字符都能匹配。
[x-z]能匹配x-z的任意一个字符 eg:[a-c]==[abc]
非贪心模式匹配
就是在次数后面+?
正则表达式转义语法
\b:匹配一个单词,但是这个单词必须位于边界 eg: /abc\b/ djfabcoweabc 边界上的abc匹配
\B:匹配一个单词,而且要非边界上的单词
\d:匹配0-9中的一个数字字符
\D:匹配一个非数字字符,就是0-9以外的一个字符。
\s:表示匹配一个空白字符。
\S:表示匹配一个非空白字符。
\w:表示匹配任何一个单词字符,表示数字字母 下划线。
\W:表示匹配任何非单词字符 。
3.创建一个正则表达式 后使用exec() 和test()匹配字符串
exec():是匹配一个字符串后返回含有匹配的结果的数组。 text()是匹配一个字符串后返回是否匹配。
返回的数组中有:input:要匹配的字符串, index:屁屁额的子字符串开始的位置, lastIndex:被匹配的最后一个子串的位置
source:模式
test():返回真或者是假。
二.字符串
字符串的相关函数:
charAt(i) eg:str.charAt(i) 表示 返回str字符串的第i个字符。
charCodeAt(i) str.charCodeAt(i) 表示返回str字符串的第i个字符的Unicode码值。
concat(str1,str2), str3=concat(st1,str2);
indexOf(str,sub) 返回sub在str中的首次匹配的位置,如果没有找到则返回-1
lastIndexOf(str,sub), 在str中找到sub最后一次匹配的位置。
slice() 提取字符串中的一部分。
splice() str.splice(" ,"),将字符串以,分开,返回数组。
match(re) str.match(正则对象|模式), 查找正则对象,没有返回null 否则返回数组
replace(re,retext) str.replace(reg,"abcd") 通过正则查找,如果找到就用abcd代替,返回替换后的副本。
search(re) 用来搜索一个re,有则返回他到字符串开始的距离,否则返回-1
三、数组
var arr=new Array();
arr.isArray() 判断arr是否是一个数组
常用函数:
(1)插入、删除
pop() var e=arr.pop()表示 尾部删除,返回当前的数值
push() var len=arr.push()表示尾部插入,返回当前的长度
shift() var e=arr.shitf() 表示头部删除一个元素,返回当前元素的值
unshift() var len=arr.unshitf() 表示在头部插入一个元素,返回当前的长度。
(2)遍历数组中的每一个元素(ECMAScript 5) (fun1都可以保护三个元素,item index array,当前元素,下标,数组名)
every(),对数组中的每个元素进行function测试,直到返回的结果值为假时结束。就不再执行了。 eg arr.every(fun1).对arr数组中的元素从头开始带人fun1中执行,直到fun1的结果为false就不在执行了。
filter(),类似every,会执行完所有的项,对返回值为真的项值放入数组中,最后返回这个数组
forEach() 对数组中的每个元素调用 回调函数。 arr.forEach(fun1,this) 对arr 中的每个元素用fun1函数。this指向自己,可以省略。
map() 和every()相似,数组中的每个元素调用测试函数,将每个项返回的结果都放在数组中,最后返回数组。 arr.map(fun1);
some() 对数组中的每个元素进行function测试,直到返回的结果值为真时结束。
reduce() 从左到右
reduceRight() 从右到左
(3)数组链接
concat()返回新数组
join() 返回一个字符串
(4)找数组下标
indexOf()用全等于 匹配得到的下标 arr.indexOf("a"),找到返回下标,否则返回-1
lastIndexOf() 从后面往前匹配得到的下标
(5)排序
sort()进行排序。 默认情况下是升序排序,大写优于小写。 其中自定义排序中,-1表示第一个参数比第二个参数小。0表示两个参数相等。1表示第一个参数比第二个参数大。
sortOn()表示按1个或者多个字段进行排序。
reverse()反转一个数组
(6)数组克隆
浅表克隆:就是当数组中的元素仍然是一个复杂数据类型时,不进行复制,只是建立一个指向原数据的引用;
深度克隆:是将原始数组中的引用类型读取数据然后从新填充数组。
javascript基础---正则表达式和字符串,数组