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)数组克隆

浅表克隆:就是当数组中的元素仍然是一个复杂数据类型时,不进行复制,只是建立一个指向原数据的引用;

深度克隆:是将原始数组中的引用类型读取数据然后从新填充数组。

时间: 2024-08-02 06:58:10

javascript基础---正则表达式和字符串,数组的相关文章

【C++基础】 指针&amp;字符串&amp;数组

先贴代码,总结以后再写,和5中内存分配方式密切相关 PS: str 返回整个字符串,str[0],*str返回首字符h char *strA(){ char str[]="hello!"; //局部数组,局部变量, str存在栈区 return str; //局部变量不能传值,估计会成为野指针 //函数返回局部变量的地址,当被调用完成时,str就释放了,因此返回结果是不确定的且不安全的 } char *strA2(){ char *str = "hello2!";/

JavaScript内置对象(字符串,数组,日期的处理)

Date 日期对象 日期对象可以储存任意一个日期,并且可以精确到毫秒数(1/1000 秒). 定义一个时间对象 : var Udate=new Date(); 注意:使用关键字new,Date()的首字母必须大写. 使 Udate 成为日期对象,并且已有初始值:当前时间(当前电脑系统时间). 如果要自定义初始值,可以用以下方法: var d = new Date(2012, 10, 1); //2012年10月1日 var d = new Date('Oct 1, 2012'); //2012年

JavaScript基础 Date(日期字符串 不包括时分秒) 不指定时分秒的时候 系统默认是0:0:0

镇场诗: 清心感悟智慧语,不着世间名与利.学水处下纳百川,舍尽贡高我慢意. 学有小成返哺根,愿铸一良心博客.诚心于此写经验,愿见文者得启发.------------------------------------------ code: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=ut

JavaScript基础 Date(日期字符串 包括时分秒)

镇场诗: 清心感悟智慧语,不着世间名与利.学水处下纳百川,舍尽贡高我慢意. 学有小成返哺根,愿铸一良心博客.诚心于此写经验,愿见文者得启发.------------------------------------------ code: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=ut

JavaScript基础 split(&quot;&quot;) 将字符串分割成字符数组

镇场诗: 清心感悟智慧语,不着世间名与利.学水处下纳百川,舍尽贡高我慢意. 学有小成返哺根,愿铸一良心博客.诚心于此写经验,愿见文者得启发.------------------------------------------ code: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=ut

JavaScript基础正则表达式的字面声明(012)

不出所料,正则表达式也是JavaScript的一种对象.构造正则表达式也有两种,一种是使用JavaScript内置的 new RegExp() 构造函数,另一种是我们推荐的字面声明方式: // regular expression literal var re = /\\/gm; // constructor var re = new RegExp("\\\\", "gm"); 可以看出字面声明法(Literal)更简洁,由于不必加引号,所以不用象构造函数里的参数那

javascript基础--正则表达式

第一部分  字符 part1 元字符 正则表达式的元字符有:( [ { ? \ ^ $ + * | . 对这几个元字符依次做出解释如下: 小括号() 1.小括号主要是用来划分整体的(分组) 实例一: var reg = new RegExp('(test)?'); 'test'.match(reg);  //['test', 'test']  首先以/test?/进行匹配,然后按照小括号里的/test/进行匹配 var reg1 = new RegExp('test?'); 'test'.mat

JavaScript基础 整形与字符串进行加法运算

镇场诗: 清心感悟智慧语,不着世间名与利.学水处下纳百川,舍尽贡高我慢意. 学有小成返哺根,愿铸一良心博客.诚心于此写经验,愿见文者得启发.------------------------------------------ code: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=ut

JavaScript基础 parseInt() 于字符串从左往右提取整数

镇场诗: 清心感悟智慧语,不着世间名与利.学水处下纳百川,舍尽贡高我慢意. 学有小成返哺根,愿铸一良心博客.诚心于此写经验,愿见文者得启发.------------------------------------------ code: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=ut