javaScript事件和正则

本文介绍了JavaScript中的正则表达式用法,包括字面量和构造函数创建,以及匹配模式如i、g、m、s。同时,详细讲解了事件模型,包括内联模型、脚本模型和DOM2模型,并涵盖了各种键盘事件、HTML事件和鼠标事件,还讨论了事件绑定和事件流的概念。

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

正则表达式是用于匹配字符串中字符组合的模式。在 JavaScript中,正则表达式也是对象。这些模式被用于 RegExp 的 exec 和 test 方法, 以及 String 的 matchmatchAllreplacesearch 和 split 方法。

使用一个正则表达式字面量,其由包含在斜杠之间的模式组成,如下所示:

var re = /ab+c/;
脚本加载后,正则表达式字面量就会被编译。当正则表达式保持不变时,使用此方法可获得更好的性能。

或者调用RegExp对象的构造函数,如下所示

var re = new RegExp("ab+c");
在脚本运行过程中,用构造函数创建的正则表达式会被编译。如果正则表达式将会改变,或者它将会从用户输入等来源中动态地产生,就需要使用构造函数来创建正则表达式。

匹配模式
i     执行对大小不敏感的匹配

g    全局搜索

m    执行多行搜索,但会改变^和$的行为

s    支持单行字符串,.可以匹配换行符

RegExp对象的方法
exec    检索字符中是正则表达式的匹配,返回找到的值

test      检索字符串中指定的值,返回true或false

lastIndex  一个整数,标示开始下一次匹配的字符位置。

该属性存放一个整数,它声明的是上一次匹配文本之后的第一个字符的位置

exec() 方法用于检索字符串中的正则表达式的匹配。

RegExpObject.exec(string)

返回值

返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回值为 null。

1、事件模型

JavaScript有三种事件模型:内联模型、脚本模型和DOM2模型

内联模型
在HTML中把事件处理函数作为属性执行JS代码:
<input type="button" value="按钮" οnclick="alert('Lee');" /> //注意单双引号

在HTML中把事件处理函数作为属性执行JS函数
<input type="button" value="按钮" οnclick="box();"  />    //执行JS的函数

脚本模型
 var input = document.getElementsByTagName('input')[0];        //得到input对象

input.onclick = function () {                                                         //匿名函数执行       

 alert('Lee');     };

2、处理的事件类型

JavaScript可以处理的事件类型为:鼠标事件、键盘事件、HTML事件

3、事件组成

所有的事件处理函数都会都有两个部分组成,on + 事件名称,例如click事件的事件处理函数就是:onclick。

4、键盘事件

keydown:当用户按下键盘上任意键触发,如果按住不放,会重复触发。

keypress:当用户按下键盘上的字符键触发,如果按住不放,会重复触发。

keyup:当用户释放键盘上的键触发。

5、HTML事件

select:当用户选择文本框(input或textarea)中的一个或多个字符触发。     

change:当文本框(input或textarea)内容改变且失去焦点后触发。   

focus:当页面或者元素获得焦点时在window及相关元素上面触发。     

 blur:当页面或元素失去焦点时在window及相关元素上触发。     

submit:当用户点击提交按钮在<form>元素上触发。     

reset:当用户点击重置按钮在<form>元素上触发。

resize:当窗口或框架的大小变化时在window或框架上触发。   

scroll:当用户滚动带滚动条的元素时触发。     

6、鼠标事件

click:当用户单击鼠标按钮。     

dblclick:当用户双击主鼠标按钮时触发。   

mousedown:当用户按下了鼠标还未弹起时触发。     

mouseup:当用户释放鼠标按钮时触发。     

mouseover:当鼠标移到某个元素上方时触发。 mouseenter     

mouseout:当鼠标移出某个元素上方时触发。  mouseleave   

7、事件绑定及深入

(1)传统事件绑定的问题

8、事件流

事件流--------页面中元素接受事件的顺序 

(1) 事件冒泡 --------事件由最开始的元素接收,然后逐级向上传播到最不具体的那个节点(文档)

DOM0级事件

     1、给同一个元素对象绑定同一个事件多次,出现覆盖问题

     2、无法修改时间流的类型

(2)事件捕获 --------事件由最最不具体的那个节点(文档)元素接收,然后逐级向下广播到最具体的那个元素

DOM2级事件

        用于添加事件和删除事件处理程序的操作
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值