《正则表达式大全(下)》(高清晰)pdf版
根据提供的信息,《正则表达式大全(下)》是一本专注于正则表达式的电子书籍,主要涉及各种类型的验证模式和一些实用的功能性正则表达式。以下是对该书提到的知识点进行详细的阐述: ### 一、验证类 #### 1、数字验证 - **1.1 整数** - 表达式:`/^(-|\+)?\d+$/` - 描述:此表达式匹配任何整数,包括正整数、负整数以及带有正负号的整数。 - **1.2 大于0的整数** - 表达式:`/^\d+$/` - 描述:此表达式匹配所有正整数,但不包括负数和零。 - **1.3 负整数的验证** - 表达式:`/^-\d+$/` - 描述:此表达式只匹配以负号开头的负整数。 - **1.4 整数不能大于iMax** - 示例:若iMax为100,则需要使用特定的逻辑来实现这一限制。 - 实现方法: - 可以先使用正则表达式检查是否为整数,再通过比较运算符来确保数值不超过iMax。 - 例如,首先使用`/^\d+$/`来验证是否为整数,然后通过`parseInt(str) <= iMax`来判断是否超出范围。 - **1.5 整数不能小于iMin** - 示例:若iMin为-100,则需要使用特定的逻辑来实现这一限制。 - 实现方法: - 同上,先使用正则表达式验证是否为整数,再通过`parseInt(str) >= iMin`来确保数值不低于iMin。 #### 2、时间类 - **2.1 短时间,形如(13:04:06)** - 函数示例: ```javascript function isTime(str) { var a = str.match(/^(\d{1,2})(:)?(\d{1,2})\2(\d{1,2})$/); if (a == null) { alert('输入的参数不是时间格式'); return false; } if (a[1] > 24 || a[3] > 60 || a[4] > 60) { alert("时间格式不对"); return false } return true; } ``` - 描述:此函数检查输入的时间是否符合HH:MM:SS的格式,并且每部分的值是否合理。 - **2.2 短日期,形如(2003-12-05)** - 函数示例: ```javascript function strDateTime(str) { var r = str.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/); if (r == null) return false; var d = new Date(r[1], r[3] - 1, r[4]); return (d.getFullYear() == r[1] && (d.getMonth() + 1) == r[3] && d.getDate() == r[4]); } ``` - 描述:此函数检查日期是否符合YYYY-MM-DD的格式,并且日期是否有效。 - **2.3 长时间,形如(2003-12-0513:04:06)** - 函数示例: ```javascript function strDateTime(str) { var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})(\d{1,2}):(\d{1,2}):(\d{1,2})$/; var r = str.match(reg); if (r == null) return false; var d = new Date(r[1], r[3] - 1, r[4], r[5], r[6], r[7]); return (d.getFullYear() == r[1] && (d.getMonth() + 1) == r[3] && d.getDate() == r[4]); } ``` - 描述:此函数检查日期和时间是否符合YYYY-MM-DD HH:MM:SS的格式,并且日期和时间是否有效。 #### 3、表单类 - **3.1 所有的表单的值都不能为空** - 实现方法: - 使用`/^\S+$/`来匹配非空字符。 - 或者使用`/^.+$/`来确保至少有一个字符。 - **3.2 多行文本框的值不能为空** - 实现方法: - 类似3.1,使用`/^.+$/`来确保文本框中有内容。 - **3.3 多行文本框的值不能超过sMaxStrleng** - 实现方法: - 使用字符串长度比较。 - 例如:`str.length <= sMaxStrleng`。 - **3.4 多行文本框的值不能少于sMixStrleng** - 实现方法: - 使用字符串长度比较。 - 例如:`str.length >= sMixStrleng`。 - **3.5 判断单选框是否选择** - 实现方法: - 检查是否有选项被选中。 - 例如:`document.querySelector('input[type="radio"]:checked') !== null`。 - **3.6 判断复选框是否选择** - 实现方法: - 检查是否有选项被选中。 - 例如:`document.querySelectorAll('input[type="checkbox"]:checked').length > 0`。 - **3.7 复选框的全选,多选,全不选,反选** - 实现方法: - 全选:遍历所有复选框并设置checked属性为true。 - 多选:用户手动选择。 - 全不选:遍历所有复选框并设置checked属性为false。 - 反选:遍历所有复选框并反转checked属性。 - **3.8 文件上传过程中判断文件类型** - 实现方法: - 使用JavaScript检查文件扩展名。 - 例如:`file.name.match(/\.(gif|png|jpg|jpeg)$/i)`。 #### 4、字符类 - **4.1 判断字符全部由a-Z或者是A-Z的字母组成** - 表达式:`/^[a-zA-Z]+$/` - **4.2 判断字符由字母和数字组成** - 表达式:`/^[a-zA-Z0-9]+$/` - **4.3 判断字符由字母和数字,下划线,点号组成.且开头的只能是下划线和字母** - 表达式:`/^[a-zA-Z_][a-zA-Z0-9_.]*$/` - **4.4 字符串替换函数.Replace();** - 实现方法: - 使用JavaScript的`replace()`方法进行字符串替换。 - 例如:`str.replace(/old/g, 'new')`。 #### 5、浏览器类 - **5.1 判断浏览器的类型** - 实现方法: - 使用navigator.userAgent进行判断。 - 例如:`navigator.userAgent.indexOf('Chrome') > -1`。 - **5.2 判断ie的版本** - 实现方法: - 使用navigator.userAgent进行判断。 - 例如:`navigator.userAgent.indexOf('MSIE') > -1`。 - **5.3 判断客户端的分辨率** - 实现方法: - 使用window.screen.width和window.screen.height。 - 例如:`screen.width >= 1920`。 #### 6、结合类 - **6.1 email的判断** - 表达式:`/^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/` - **6.2 手机号码的验证** - 表达式:`/^1[3-9]\d{9}$/` - 描述:此表达式验证中国大陆手机号码的格式。 - **6.3 身份证的验证** - 实现方法: - 使用复杂的正则表达式和算法来验证身份证的有效性。 - 例如:`/^(?:(?:18|19|(?:[23]\d))\d{2}(?:(?:0[1-9])|(?:10|11|12))(?:(?:[0-2][1-9])|10|20|30|31)\d{3}[0-9Xx])$/` ### 二、功能类 #### 1、时间与相关控件类 - **1.1 日历** - 实现方法: - 使用HTML和JavaScript创建日历控件。 - 例如:使用第三方库如jQuery UI中的Datepicker插件。 - **1.2 时间控件** - 实现方法: - 使用HTML5的`<input type="time">`元素。 - **1.3 万年历** - 实现方法: - 创建一个能够显示任意年份的日历控件。 - 可以使用JavaScript动态生成。 - **1.4 显示动态显示时钟效果(文本,如OA中时间)** - 实现方法: - 使用JavaScript定时更新页面上的时间显示。 - **1.5 显示动态显示时钟效果(图像,像手表)** - 实现方法: - 使用SVG或者Canvas绘制时钟图像,并通过JavaScript更新指针位置。 #### 2、表单类 - **2.1 自动生成表单** - 实现方法: - 使用JavaScript动态生成表单元素。 - **2.2 动态添加,修改,删除下拉框中的元素** - 实现方法: - 使用JavaScript操作DOM来动态增删下拉框中的选项。 - **2.3 可以输入内容的下拉框** - 实现方法: - 使用HTML5的`<select multiple>`元素。 - **2.4 多行文本框中只能输入iMax文字。如果多输入了,自动减少到iMax个文字(多用于短信发送)** - 实现方法: - 使用JavaScript监听文本框的变化,并在用户输入超过指定长度时截断内容。 #### 3、打印类 - **3.1 打印控件** - 实现方法: - 使用JavaScript调用`window.print()`方法来打印当前页面。 #### 4、事件类 - **4.1 屏蔽右键** - 实现方法: - 使用JavaScript监听鼠标右键事件,并阻止默认行为。 - **4.2 屏蔽所有功能键** - 实现方法: - 使用JavaScript监听键盘事件,并阻止特定按键的默认行为。 - **4.3 屏蔽组合键ctrl+N** - 实现方法: - 使用JavaScript监听键盘事件,检测Ctrl+N组合键,并阻止默认行为。 #### 5、网页设计类 - **5.1 连续滚动的文字,图片(注意是连续的,两段文字和图片中没有空白出现)** - 实现方法: - 使用CSS的动画或者JavaScript实现无限循环的滚动效果。 - **5.2 HTML编辑控件类** - 实现方法: - 使用WYSIWYG编辑器插件,如TinyMCE或CKEditor。 - **5.3 颜色选取框控件** - 实现方法: - 使用HTML5的`<input type="color">`元素。 - **5.4 下拉菜单** - 实现方法: - 使用CSS和JavaScript实现交互式的下拉菜单效果。 - **5.5 两层或多层次的下拉菜单** - 实现方法: - 使用嵌套的下拉菜单实现多级菜单效果。 - **5.6 仿IE菜单的按钮** - 实现方法: - 使用CSS和JavaScript模拟IE菜单的外观和行为。 - **5.7 状态栏,title栏的动态效果(例子很多,可以研究一下)** - 实现方法: - 使用JavaScript改变页面的状态栏或title文字。 - **5.8 双击后,网页自动滚屏** - 实现方法: - 使用JavaScript监听双击事件,并控制页面滚动。 #### 6、树型结构 - **6.1 asp+SQL版** - 实现方法: - 使用ASP处理数据,并通过SQL查询数据库构建树状结构。 - **6.2 asp+xml+sql版** - 实现方法: - 使用ASP处理XML数据,并通过SQL查询数据库构建树状结构。 - **6.3 java+sql或者java+sql+xml** - 实现方法: - 使用Java处理数据,并通过SQL查询数据库构建树状结构;也可以使用XML存储数据。 #### 7、无边框效果的制作 - 实现方法: - 使用CSS的border属性来实现无边框效果。 #### 8、连动下拉框技术 - 实现方法: - 使用JavaScript监听第一个下拉框的选择事件,并根据所选值动态更新第二个下拉框的内容。 #### 9、文本排序 - 实现方法: - 使用JavaScript对数组进行排序,然后更新DOM元素。 以上是对《正则表达式大全(下)》中提及的各类正则表达式和功能的详细介绍。这些正则表达式和功能在实际开发中非常有用,可以帮助开发者快速高效地完成各种验证和功能实现。
- jsyzzcx2012-12-03挺好的,谢谢分享,很全的
- 粉丝: 11
- 资源: 210
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于Django和OpenCV的智能车视频处理系统.zip
- (源码)基于ESP8266的WebDAV服务器与3D打印机管理系统.zip
- (源码)基于Nio实现的Mycat 2.0数据库代理系统.zip
- (源码)基于Java的高校学生就业管理系统.zip
- (源码)基于Spring Boot框架的博客系统.zip
- (源码)基于Spring Boot框架的博客管理系统.zip
- (源码)基于ESP8266和Blynk的IR设备控制系统.zip
- (源码)基于Java和JSP的校园论坛系统.zip
- (源码)基于ROS Kinetic框架的AGV激光雷达导航与SLAM系统.zip
- (源码)基于PythonDjango框架的资产管理系统.zip