《正则表达式大全(下)》(高清晰)pdf版
3星 · 超过75%的资源 需积分: 0 142 浏览量
更新于2008-10-04
收藏 177KB 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元素。
以上是对《正则表达式大全(下)》中提及的各类正则表达式和功能的详细介绍。这些正则表达式和功能在实际开发中非常有用,可以帮助开发者快速高效地完成各种验证和功能实现。