资讯专栏INFORMATION COLUMN

Date类型和Regex类型

olle / 564人阅读

摘要:实际上,如果直接将表示日期的字符串传递给构造函数,也会在后台调用。布尔值,表示是否设置了标志。正则表达式的字符串表示,按照字面量形式而非传入构造函数中的字符串模式返回。

Date 类型

var now = new Date();

在调用Date构造函数而不传递参数的情况下,新创建的对象自动获得当前日期和时间

特定的日期和时间创建日期对象,必须传入表示该日期的毫秒数(即从UTC时间1970年1月1日午
夜起至该日期止经过的毫秒数)

Date.parse()方法接收一个表示日期的字符串参数,然后尝试根据这个字符串返回相应日期的毫秒数

要为2004年5月25日创建一个日期对象,可以使用下面的代码:

var someDate = new Date(Date.parse("May 25, 2004")); 

Date.parse()方法的字符串不能表示日期,那么它会返回NaN。实际上,如果直接将表
示日期的字符串传递给Date构造函数,也会在后台调用Date.parse()。

换句话说,下面的代码与前面的例子是等价的:

var someDate = new Date("May 25, 2004"); 

这行代码将会得到与前面相同的日期对象

Data.now()
返回表示调用这个方法时的日期和时间的毫秒数

Date类型也重写了toLocaleString()、toString()和valueOf()

toLocaleString()、toString()

这两个方法在不同的浏览器中返回的日期和时间格式可谓大相径庭。

valueOf()方法,则根本不返回字符串,而是返回日期的毫秒表示

RegExp 类型

var expression = /pattern/ flags ;

g:表示全局(global)模式,即模式将被应用于所有字符串,而非在发现第一个匹配项时立即停止;

 i:表示不区分大小写(case-insensitive)模式,即在确定匹配项时忽略模式与字符串的大小写;

 m:表示多行(multiline)模式,即在到达一行文本末尾时还会继续查找下一行中是否存在与模式匹配的项。

所有元字符都必须转义。
正则表达式中的元字符包括:( [ { ^ $ | ) ? * + .]}

可以使用字面量定义的任何表达式,
可以使用构造函数来定义,

var pattern1 = /[bc]at/i; 

var pattern2 = new RegExp("[bc]at", "i"); 

RegExp的每个实例都具有下列属性,通过这些属性可以取得有关模式的各种信息。

 global:布尔值,表示是否设置了g标志。
 ignoreCase:布尔值,表示是否设置了i标志。
 lastIndex:整数,表示开始搜索下一个匹配项的字符位置,从0算起。
 multiline:布尔值,表示是否设置了m标志。
 source:正则表达式的字符串表示,按照字面量形式而非传入构造函数中的字符串模式返回。

    var pattern1 = /[bc]at/i; 
    alert(pattern1.global); //false 
    alert(pattern1.ignoreCase); //true 
    alert(pattern1.multiline); //false 
    alert(pattern1.lastIndex); //0 
    alert(pattern1.source); //"[bc]at" 

RegExp对象的主要方法是exec(),

该方法是专门为捕获组而设计的。
exec()接受一个参数,即要应用模式的字符串,
然后返回包含第一个匹配项信息的数组;或者在没有匹配项的情况下返回null。
返回的数组虽然是Array的实例,但包含两个额外的属性:index和input。
其中,index表示匹配项在字符串中的位置,
而input表示应用正则表达式的字符串。

在数组中,第一项是与整个模式匹配的字符串,
其他项是与模式中的捕获组匹配的字符串(如果模式中没有捕获组,则该数组只包含一项)。
请看下面的例子。
var text = "mom and dad and baby";
var pattern = /mom( and dad( and baby)?)?/gi;
var matches = pattern.exec(text);
console.log(matches.index); // 0
console.log(matches.input); // "mom and dad and baby"
console.log(matches[0]); // "mom and dad and baby"
console.log(matches[1]); // " and dad and baby"
console.log(matches[2]); // " and baby"

对于exec()方法而言,即使在模式中设置了全局标志(g),它每次也只会返回一个匹配项。在不
设置全局标志的情况下,在同一个字符串上多次调用exec()将始终返回第一个匹配项的信息。而在设
置全局标志的情况下,每次调用exec()则都会在字符串中继续查找新匹配项,如下面的例子所示。

var text = "cat, bat, sat, fat"; 
var pattern1 = /.at/; 
var matches = pattern1.exec(text); 
alert(matches.index); //0 
alert(matches[0]); //cat 
alert(pattern1.lastIndex); //0 
matches = pattern1.exec(text); 
alert(matches.index); //0 
alert(matches[0]); //cat 
alert(pattern1.lastIndex); //0 


var pattern2 = /.at/g; 
var matches = pattern2.exec(text); 
alert(matches.index);  //0 
alert(matches[0]); //cat 
alert(pattern2.lastIndex); //3 

matches = pattern2.exec(text); 
alert(matches.index); //5 
alert(matches[0]); //bat 
alert(pattern2.lastIndex); //8 

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/85333.html

相关文章

  • (翻译) MongoDB(5) BSON类型

    摘要:类型数字别名注意已过时布尔日期正则表达式位整数时间戳位整数要确定字段的类型,请查看在中检验类型。是位整数,代表自纪元年月日以来的毫秒数。 BSON是一个用来存储文档的二进制序列化格式,并且可以在MongoDB中远程调用。该BSON规范位于bsonspce.org。 BSON在文档中支持下列数据类型作为值。每个数据类型都有相对应的数字和字符串别名用 $type 操作执行BSON类型来查询...

    KnewOne 评论0 收藏0
  • 后端小白的我,是如何成功搭建 express+mongodb 的简洁博客网站后端的

    摘要:前言是采用了主流的前后端分离思想的,主里只讲后端。项目是的进行开发的,项目已经开源,项目地址在上。路由接口主文件所有的路由接口文章各模块的列表都是用了分页的形式的。 showImg(https://segmentfault.com/img/remote/1460000017136149); 前言 blog-node 是采用了主流的前后端分离思想的,主里只讲 后端。 blog-node ...

    Kahn 评论0 收藏0
  • java学习(五) —— 常用API类概述

    摘要:成员方法类概述用于产生随机数成员方法正则表达式相关方法判断功能分割功能替换功能获取功能和类的使用类概述包含一些有用的类字段和方法。注意它不能被实例化,因为此类构造器是私有的成员方法类类概述表示特定的瞬间,精确到毫秒。 前言 我们都知道,JDK包含了JRE,而JRE中也提供了各种功能的java类,现在我们就对这些类有个简单了解,然后灵活运用。 常用类:Object类/Scanner类,...

    Tecode 评论0 收藏0
  • (翻译) MongoDB(6) MongoDB 继承 JSON

    摘要:严格模式模式是一个位有符号整数。你必须包含括号,否则将会被解释为浮点数,导致准确性的损失。例如,下列命令是把带括号和不带括号的整数值作为一个来插入当你检索文档的时候,未加引号的值已经发生了改变,加引号保证了其的准确性下一章原文来源 JSON 所支持的类型仅是 BSON 所支持的一部分(子集). 不仅保留了类型信息, MongoDB 还为 JSON 格式增加了以下扩展: 严格模式. B...

    BWrong 评论0 收藏0
  • JavaScript中的数据类型回顾

    摘要:一门语言可以使用的值的类型,称为该语言的数据类型。中没有为字符串定义特殊的数据类型。布尔类型表示值和值。输出支持的布尔操作包括逻辑与逻辑或和逻辑非。在很多常见任务中,布尔操作对于检验要求输入的字符串非常有用。 1、标识符(Names) 标识符由一个字母、下划线和美元符开头,其后可以选择性的加上一个或多个字母、数字或下划线。标识符不能使用下面这些保留字: abstract boolean...

    ralap 评论0 收藏0

发表评论

0条评论

olle

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<