Javascript基础(三)

本文介绍了正则表达式的定义与使用方法,包括常用的转义字符、量词及检索条件等内容。同时,详细解释了Date对象的创建方式及其各种方法与属性,帮助读者更好地理解和运用这些JavaScript核心特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

七. 正则表达式(Regular Expression)

为了帮助计算机认识我们输入的语言,人们设置了一定的规则,即正则,来完成我们需要的一些操作

定义正则

var re = new RegExp("a","ig");//参数为我们制定的规则,检索条件
var re = /a/ig; //简写方法,推荐使用,性能更好

注:字面量正则表达式用创建对象来表示,需要将转义字符再转义,生成模式字符串才可以解析执行

常用方法

  • test():在字符串中查找符合正则的内容,若查找到返回为true,反之false
    正则.test(字符串)

  • search():在字符串中搜索符合的内容,搜索到返回出现的位置(不是一个字母,会返回第一个字母位置),失败返回-1
    字符串.search(正则)

  • match():在字符串中搜索符合字符串内容,成功返回内容,格式为数组,失败为null,也会返回自己的子项
    字符串.match(正则)

  • replace():替换对应字符串,并返回替换后的内容
    字符串.replace(正则,新的字符串/回调函数(回调函数,第一个参数时每次匹配成功的字符))

  • exec():与match方法相同
    正则.exec(字符串)

转义字符(元字符{[(|*+.$?]})

  • \n:回车换行
  • \b:匹配单词的开头和结尾
  • .:匹配任意字符
  • .:真正的点
  • \s:空格
  • \S:非空格
  • \d:数字
  • \D:非数字
  • \w:字符(字母、数字、下划线)
  • \W:非字符
  • \b:独立的部分(起始、空格、结束)
  • \B:非独立的部分
  • .:匹配除换行符任意字符
  • ^:匹配字符串开始在[]里表示排除
  • $:匹配字符串结束的字符,和前面的字符匹配

在构造函数中,转义字符都要在进行转义,即双重转义,是由于函数中参数为字符串形式

分组字符

  • ():分组符,就相当于数学里面的括号
var str = '1014-23-22';
var re = /\d-+/g; //全局匹配数字、横杠,横杠至少为1 4- 3-
var re = /(\d-)+/g; //全局匹配数字、横杠,数字和横杠至少为1 4-3-

  • []:表示某个集合中的任意一个,[abc]整体代表一个字符,匹配a,b,c,中的任意一个

  • {}:代表出现的次数

    • {n,m}:n表示至少n次,最多m次
    • {n,}:至少n次
    • {n}:最好n次

检索条件

  • i:不区分大小写
  • g:全局匹配
  • m:多行匹配
  • u:不重复匹配
  • x:忽略空白方法
  • A:从开头开始匹配

量词

  • *:通配符(任意次) {0,}
  • +:1次或多次 {1,}
  • ?:0次或1次,{0,1}

参考网址 实例讲解正则表达式的使用

八. Date对象,window对象

Date对象(引用类型,使用UTC,国际协调时间)

  • 创建对象,用于处理日期和时间,确保到1970年1月1日到之后1亿年

    var myDate = new Date(); //自动保存当前的值

    对象中传参表示特定的日期时,必须传入表示该日期的毫秒数,有两种方法可以简化计算过程,Date.parse()Date.UTC()

    • Date.parse():传入字符串格式因地区而异,不能表示日期,则返回NaN.就算在Date构造函数中不使用该方法,也会在后台调用

      var myDate = new Date(Date.parse("may 25,2004"))
      var myDate1 = new Date("may 25,2004"); //两个创造对象是等价的
      
    • Date.UTC():在构建时与上述方法不同,使用不同的信息,方法中传入的参数分别是年份、基于0的月份(一月时0),月中的哪一天(1-31),小时数(0-23)、分钟、秒以及毫秒,年月必要,天默认为1,其余为0

      var myDate = new Date(Date.UTC(2000,9,3));//表示GMT时间2000年10月3日零时
      var myDate = new Date(2000,9,3); //日期和时间基于本地时区
      
      
    • ES5中新增Date.now():返回调用该方法时的时间,在不支持的浏览器中用+操作符获取Date对象时间戳

  • Date属性
    constructor:返回对创建此对象的 Date 函数的引用。
    prototype:使您有能力向对象添加属性和方法。

-Date方法

var myDate = new Date();
/*日期、时间组件方法*/
myDate.getDate()	//从 Date 对象返回一个月中的某一天 (1 ~ 31)。
getDay()	//从 Date 对象返回一周中的某一天
getMonth()	//从 Date 对象返回月份 (0 ~ 11)。
getFullYear()	//从 Date 对象以四位数字返回年份。
getYear()	//请使用 getFullYear() 方法代替。
getHours()	//返回 Date 对象的小时 (0 ~ 23)。
getMinutes()	//返回 Date 对象的分钟 (0 ~ 59)。
getSeconds()	//返回 Date 对象的秒数 (0 ~ 59)。
getMilliseconds()	//返回 Date 对象的毫秒(0 ~ 999)。
getTime()	//返回 1970 年 1 月 1 日至今的毫秒数。
getTimezoneOffset()//	返回本地时间与格林威治标准时间 (GMT) 的分钟差。
getUTCDate()	//根据世界时从 Date 对象返回月中的一天 (1 ~ 31)。
getUTCDay()	//根据世界时从 Date 对象返回周中的一天 (0 ~ 6)。
getUTCMonth()	//根据世界时从 Date 对象返回月份 (0 ~ 11)。
getUTCFullYear()	//根据世界时从 Date 对象返回四位数的年份。
getUTCHours()	//根据世界时返回 Date 对象的小时 (0 ~ 23)。
getUTCMinutes()//	根据世界时返回 Date 对象的分钟 (0 ~ 59)。
getUTCSeconds()	//根据世界时返回 Date 对象的秒钟 (0 ~ 59)。
getUTCMilliseconds()	//根据世界时返回 Date 对象的毫秒(0 ~ 999)。
setDate()	//设置 Date 对象中月的某一天 (1 ~ 31)。
setMonth()	//设置 Date 对象中月份 (0 ~ 11)。
setFullYear()	//设置 Date 对象中的年份(四位数字)。
setYear()	//请使用 setFullYear() 方法代替。
setHours()	//设置 Date 对象中的小时 (0 ~ 23)。
setMinutes()	//设置 Date 对象中的分钟 (0 ~ 59)。
setSeconds()	//设置 Date 对象中的秒钟 (0 ~ 59)。
setMilliseconds()	//设置 Date 对象中的毫秒 (0 ~ 999)。
setTime()	//以毫秒设置 Date 对象。
setUTCDate()	//根据世界时设置 Date 对象中月份的一天 (1 ~ 31)。
setUTCMonth()	//根据世界时设置 Date 对象中的月份 (0 ~ 11)。
setUTCFullYear()	//根据世界时设置 Date 对象中的年份(四位数字)。
setUTCHours()	//根据世界时设置 Date 对象中的小时 (0 ~ 23)。
setUTCMinutes()//根据世界时设置 Date 对象中的分钟 (0 ~ 59)。
setUTCSeconds()	//根据世界时设置 Date 对象中的秒钟 (0 ~ 59)。
setUTCMilliseconds()	//根据世界时设置 Date 对象中的毫秒 (0 ~ 999)。
/*日期格式化*/
toSource()	//返回该对象的源代码。
toString()	//把 Date 对象转换为字符串。
toTimeString()	//把 Date 对象的时间部分转换为字符串。
toDateString()	//把 Date 对象的日期部分转换为字符串。
toGMTString()	//请使用 toUTCString() 方法代替。
toUTCString()	//根据世界时,把 Date 对象转换为字符串。
toLocaleString()	//根据本地时间格式,把 Date 对象转换为字符串。
toLocaleTimeString()	//根据本地时间格式,把 Date 对象的时间部分转换为字符串。
toLocaleDateString()	//根据本地时间格式,把 Date 对象的日期部分转换为字符串。
valueOf()	//返回 Date 对象的原始值。毫秒数

window对象(BOM的核心)
既是JS访问浏览器窗口的接口,又是ECMAScript的Global对象,在网页中定义的任何对象、变量和函数,都以window作为全局对象

	var age = 29;
	function sayage(){
		alert(this.age); // this指向window
	}
	alert(window.age); // 29
	sayage(); //29
	window.sayage(); //29

全局作用域

  • 全局变量不能通过delete操作符删除,而直接在window上定义的可以

    	var age = 29;
    	window.color = red;
    	delete window.age; //IE9之前出错,其余返回false
    	delete window.color; //IE9之前出错,其余返回true
    	alert(window.age); // 29
    	alert(window.color); //undefined
    
  • 全局变量不能访问未声明的变量,会抛出错误,但通过window查询可判断变量是否存在

窗口关系及框架

  • 若窗口中有框架,则每个框架都有自己的window对象,并保存在frames集合中

九. JavaScript本地对象、内置对象、宿主对象和自定义对象

本地对象/原生对象

定义:独立于宿主对象的ECMAScript实现提供的对象 ,所定义的类(引用类型)

Object、Function、Array、String、Boolean、Number、Date、RegExp、Error、EvalError、RangeError、ReferenceError、SyntaxError、TypeError、URIError、ActiveXObject(服务器方面的对象)、Enumerator(集合遍历类)、Global、Math

内置对象(不需要new的对象)

定义:由ECMAScript实现提供的对象,独立于宿主环境,在一个脚本执行程序的初始化创建,不必创建实例

Global、Math(每个内置对象都是原生对象)

宿主对象/浏览器对象

定义:执行JS脚本的环境提供的对象,对于嵌入到网页的JS来说,就是指浏览器提供的对象,不同浏览器提供的宿主对象可能不同,会有兼容问题

Window、Document、Element、form、image等,所有BOM和DOM
宿主对象

自定义对象

定义:开发人员自己定义的对象,使JS应用及功能得到扩充

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值