Date
在JavaScript中,Date对象用来表示日期和时间
系统时间,自己创建时间都可以
以后用到再查
RegExp
正则表达式:用一种描述性的语言来给字符串定义一个规则
了解最基本的例子即可
精确匹配:也就是一对一的匹配
\d可以匹配一个数字'00\d'可以匹配'007',但无法匹配'00A';\d\d\d'可以匹配'010'\w可以匹配一个字母或数字'\w\w'可以匹配'js'.可以匹配任意字符'js.'可以匹配'jsp'、'jss'、'js!'等等
变长字符:可能有多个符合的匹配
用+表示至少一个字符用?表示0个或1个字符* 号代表字符可以不出现,也可以出现一次或者多用{n}表示n个字符,用{n,m}表示n-m个字符
\d{3}\s+\d{3,8}\d{ 3}表示匹配3个数字,例如'010';\s可以匹配一个空格(也包括Tab等空白符),所以\s+表示至少有一个空格,例如匹配' ','\t\t'等;\d{ 3,8}表示3-8个数字,例如'1234567'。综合起来,上面的正则表达式可以匹配以任意个空格隔开的带区号的电话号码。如果要匹配'010-12345'这样的号码呢?由于'-'是特殊字符,在正则表达式中,要用'\'转义,所以,上面的正则是\d{3}\-\d{3,8}
用[]表示范围
//如果后面没有{N},那么[]是精确匹配[0-9a-zA-Z\_]可以匹配一个数字、字母或者下划线;[0-9a-zA-Z\_]+可以匹配至少由一个数字、字母或者下划线组成的字符串,比如'a100','0_Z','js2015'等等;[a-zA-Z\_\$][0-9a-zA-Z\_\$]*可以匹配由字母或下划线、$开头,后接任意个由一个数字、字母或者下划线、$组成的字符串,也就是JavaScript允许的变量名;//第一个[]前面没有{},是一个字符//第二个[],是0个数字,或者19个数字[a-zA-Z\_\$][0-9a-zA-Z\_\$]{0, 19}更精确地限制了变量的长度是1-20个字符(前面1个字符+后面最多19个字符)。
开头和结束
A|B可以匹配A或B,所以(J|j)ava(S|s)cript可以匹配'JavaScript'、'Javascript'、'javaScript'或者'javascript'。^表示行的开头,^\d表示必须以数字开头。$表示行的结束,\d$表示必须以数字结束。你可能注意到了,js也可以匹配'jsp',但是加上^js$就变成了整行匹配,就只能匹配'js'了。
RegExp
匹配字符串
/*第一种方式是直接通过/正则表达式/写出来,第二种方式是通过new RegExp('正则表达式')创建一个RegExp对象。*/var re1 = /ABC\-001/;var re2 = new RegExp('ABC\\-001');re1; // /ABC\-001/re2; // /ABC\-001/var re = /^\d{3}\-\d{3,8}$/;re.test('010-12345'); // truere.test('010-1234x'); // falsere.test('010 12345'); // false
提取分组
//用()表示的就是要提取的分组(Group)//3个数字开头,3或者8个数字结尾var re = /^(\d{3})-(\d{3,8})$/;re.exec('010-12345'); // ['010-12345', '010', '12345']re.exec('010 12345'); // null //exec()方法在匹配成功后,会返回一个Array,第一个元素是正则表达式匹配到的整个字符串,后面的字符串表示匹配成功的子串。
贪婪匹配
正则会匹配尽量多的字符串
//由于\d+采用贪婪匹配,直接把后面的0全部匹配了,结果0*只能匹配空字符串了。//+ 至少一个var re = /^(\d+)(0*)$/;re.exec('102300'); // ['102300', '102300', '']/*必须让\d+采用非贪婪匹配(也就是尽可能少匹配),才能把后面的0匹配出来,加个?就可以让\d+采用非贪婪匹配*///这里的?不是正则里面的?的意思,只是为了不贪婪//遇到符合后面一个分组的情况下,前面就会停止var re = /^(\d+?)(0*)$/;re.exec('102300'); // ['102300', '1023', '00']
一个匹配邮箱的正则,当然只针对了下面几个用例
//数字或字母开头//中间可能有一个点,因为.是正则的符号,所以给他加[]和\//数字和字母中间//@//数字和字母//一定有一个点,精确匹配//最后是com或orgvar re = /^[a-zA-Z0-9]+[\.]{0,1}[a-zA-Z0-9]*@[a-zA-z0-9]+\.(com|org)$/; should_pass = ['someone@gmail.com', 'bill.gates@microsoft.com', 'tom@voyager.org', 'bob2015@163.com'], should_fail = ['test#gmail.com', 'bill@microsoft', 'bill%gates@ms.com', '@voyager.org'];