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'); // true re.test('010-1234x'); // false re.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或org var re = /^[a-zA-Z0-9]+[\.]{0,1}[a-zA-Z0-9]*@[a-zA-z0-9]+\.(com|org)$/; should_pass = ['[email protected]', '[email protected]', '[email protected]', '[email protected]'], should_fail = ['test#gmail.com', 'bill@microsoft', 'bill%[email protected]', '@voyager.org'];