本帖最后由 武汉分校-小舞 于 2017-8-17 15:10 编辑
1、判断是否为数字:/\d/
2、判断字符串存在连续的数字:/\d{n}/
3、判断是以某个字符开头的,如以0开头:/^0/ ,如以$开头的则是 /^\$/(此处需要加转义符"\",由于正则中表达结束时有$表示的,加上转义可让机器做出争取饿的判断)
4、判断以为某个字符结束,以0结束的:/0$/
5、判断字符串中连续出现字母:/([a-z][A-Z]\1)
6、判断连续出现n个字母:/([a-z][A-Z])\n)
二、键盘事件keydown、keypress、keyup随笔整理
1、javascript获键盘事件
javascript事件主要通过以下三个事件来捕获键盘事件:onkeydown,onkeypress与onkeyup. 对应浏览器的三种按键事件类型,即keydown,keypress和keyup。一个典型的按键会产生所有这三种事件,依次是keydown,keypress,然后是按键释放时候的keyup。 在这3种事件类型中,keydown和keyup比较底层,而keypress比较高级。这里所谓的高级是指,当用户按下shift + 1时,keypress是对这个按键事件进行解析后返回一个可打印的“!”字符,而keydown和keyup只是记录了shift + 1这个事件。
2、各类型输入法事件触发顺序
英文输入法:
事件触发顺序:keydown - > keypress - > keyup
中文输入法:
firfox:输入触发keydown,回车确认输入触发keyup
chrome:输入触发keydown、keyup,回车确认输入只触发keydown
IE:输入触发keydown、keyup,回车确认输入触发keydown,keyup
Safari:输入触发keydown、keyup,回车确认输入触发keydown,keyup
opera:输入触发keydown、keyup,回车确认输入触发keydown,keyup
3、键盘中的键分为字符(可打印)键和功能键(不可打印)
系统功能键包括如下:
Esc、Tab、Caps Lock、Shift、Ctrl、Alt、Enter、Backspace、Print Screen、Scroll Lock、Pause Break、Insert、Delete、Home、End、Page Up、Page Down, F1 through F12,Num Lock、The Arrow Keys。
keypress只能针对一些可以打印出来的字符有效,而对于功能按键则不会产生keypress事件,但是可以产生keydown和keyup事件。然而在FireFox中,功能按键是可以产生keypress事件的。
keypress响应系统功能键总结:
Firefox:支持 Esc、Enter、Backspace、Pause Break、Insert、Delete、Home、End、Page Up、Page Down、F1 through F12、The Arrow Keys
Chrome:支持Enter
Oprea:支持Enter
Safari:支持Enter
IE:支持Esc、Enter
数字值 实际键值
48到57 0到9
65到90 a到z(A到Z)
112到135 F1到F24
8 BackSpace(退格)
9 Tab
13 Enter(回车)
20 Caps_Lock(大写锁定)
32 Space(空格键)
37 Left(左箭头)
38 Up(上箭头)
39 Right(右箭头)
40 Down(下箭头)
4、浏览器中keycode事件差异
keydown: 获得keyCode, charCode=0
keypress: 字符(英文区分大小写+数字 / * , . ...等非功能键),keyCode=0,获取charCode值,反之获取keyCode,charCode=0
keyup: 获得keyCode, charCode=0
总结:回车、上下左右、等功能键keydown、keypress、keyup都获取keyCode,并且值相等。
IE(ie9以下)只有一个属性KeyCode属性,当为keydown和keyup 事件是,keycode属性表示你具体按下的键(也称为virtual keycode),当捕捉的是keypress事件时keyCode属性指的是你键入的字符(character code) ;标准浏览器中情况有些不同,event对象包含一个keyCode属性和一个charCode属性,keydown和keyup事件的时候,keyCode表示的就是你具体按的键,charCode为0;当捕捉的是keypress事件时,keyCode为0,charCode指的是你按下的字符。
5、keypress事件的keyCode对字母的大小写敏感
keypress事件的keyCode对字母的大小写敏感,而keydown、keyup事件不敏感。
keypress事件的which值无法区分主键盘上的数字键和附键盘数字键的,而keydown、keyup的which值对主附键盘的数字键敏感。
开启大写情况,keydown、keypress(字母,主键盘数字、回车)、keyup,which值相等,小写情况keypress获取的which不同于keypress、keyup。
|