JavaScript 正则表达式常用实例与方法
需积分: 18 7 浏览量
更新于2024-09-29
收藏 50KB DOC 举报
本文介绍了JavaScript中的经典正则表达式及其应用场景,包括匹配中文字符、双字节字符、空行、HTML标记、首尾空格、IP地址、Email地址和URL等。正则表达式在字符串处理、表单验证等方面非常实用,但使用时需要对相关语法有深入理解。
1. **匹配中文字符**:
- 正则表达式:`[\u4e00-\u9fa5]`
- 这个表达式用于识别所有中文字符,范围覆盖了Unicode中的基本汉字区。
2. **匹配双字节字符**:
- 正则表达式:`[^\x00-\xff]`
- 双字节字符包括汉字和其他非ASCII字符。这个表达式用于匹配所有非ASCII字符,常用于计算包含双字节字符的字符串长度。
3. **计算字符串长度**:
- 在JavaScript中,可以使用正则替换方法来计算字符串长度,例如:
```javascript
String.prototype.len = function() {
return this.replace(/[^\x00-\xff]/g, "aa").length;
}
```
- 这个方法会将所有非ASCII字符替换为两个"aa",然后返回结果字符串的长度,从而得到正确的长度计算。
4. **匹配空行**:
- 正则表达式:`\n[\s|]*\r`
- 这个表达式用于匹配文本中的空行,包括换行符和可能存在的多个空格或制表符。
5. **匹配HTML标记**:
- 正则表达式:`/<(.*)>.*<\/\1>|<(.*) \/>/`
- 这个表达式用来匹配HTML的开始和结束标签,以及自闭合标签。
6. **匹配首尾空格**:
- 正则表达式:`(^\s*)|(\s*$)`
- 这个表达式用于去除字符串开头和结尾的空格,常用于实现类似trim的功能。
7. **JavaScript中的trim函数**:
- 通过正则表达式实现trim功能:
```javascript
String.prototype.trim = function() {
return this.replace(/(^\s*)|(\s*$)/g, "");
}
```
- 这个函数会删除字符串开头和结尾的空格。
8. **利用正则表达式处理IP地址**:
- 可以通过正则表达式匹配IP地址并转换为数值:
```javascript
function IP2V(ip) {
var re = /(\d+)\.(\d+)\.(\d+)\.(\d+)/g;
if (re.test(ip)) {
return RegExp.$1 * Math.pow(255, 3) + RegExp.$2 * Math.pow(255, 2) + RegExp.$3 * 255 + RegExp.$4 * 1;
} else {
throw new Error("Not a valid IP address!");
}
}
```
- 或者使用split方法简化处理:
```javascript
var ip = "10.100.20.168";
ip = ip.split(".");
alert("IP值是:" + (ip[0] * 255 * 255 * 255 + ip[1] * 255 * 255 + ip[2] * 255 + ip[3] * 1));
```
9. **匹配Email地址**:
- 正则表达式:`\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*`
- 这个表达式用于验证电子邮件地址的格式是否正确。
10. **匹配网址URL**:
- 正则表达式:`http://([\w-]+.)+[\w-]+(/[\w- ./?%&=])?`
- 这个表达式用于匹配标准的HTTP URL。
正则表达式是JavaScript中处理字符串的强大工具,熟练掌握正则表达式可以帮助开发者更有效地进行数据验证、提取和处理。以上介绍的这些经典表达式涵盖了日常开发中常见的需求,学习和掌握它们对于提升JavaScript编程能力大有裨益。
2013-12-18 上传
2021-12-28 上传
2024-04-08 上传
2023-05-14 上传
2023-06-03 上传
2021-05-06 上传
2008-06-10 上传
2009-12-01 上传
z...zz.....
- 粉丝: 55
- 资源: 58
最新资源
- 火炬连体网络在MNIST的2D嵌入实现示例
- Angular插件增强Application Insights JavaScript SDK功能
- 实时三维重建:InfiniTAM的ros驱动应用
- Spring与Mybatis整合的配置与实践
- Vozy前端技术测试深入体验与模板参考
- React应用实现语音转文字功能介绍
- PHPMailer-6.6.4: PHP邮件收发类库的详细介绍
- Felineboard:为猫主人设计的交互式仪表板
- PGRFileManager:功能强大的开源Ajax文件管理器
- Pytest-Html定制测试报告与源代码封装教程
- Angular开发与部署指南:从创建到测试
- BASIC-BINARY-IPC系统:进程间通信的非阻塞接口
- LTK3D: Common Lisp中的基础3D图形实现
- Timer-Counter-Lister:官方源代码及更新发布
- Galaxia REST API:面向地球问题的解决方案
- Node.js模块:随机动物实例教程与源码解析