正则表达式面试题详解:从基础到高级应用
需积分: 9 159 浏览量
更新于2024-08-05
收藏 31KB MD 举报
本文主要介绍了正则表达式在前端面试中的常见应用,包括数字千分位分割、手机号格式化、trim函数实现、HTML转义以及获取URL查询参数等实际问题的解决方案。
在前端开发和面试中,正则表达式是一项重要的技能。下面将详细解析这些知识点:
### 1. 数字价格千分位分割
正则表达式 `(?!^)(?=(\d{3})+$)` 能将数字自动按每三位添加逗号进行千分位分割。其工作原理是:
- `(?!^)` 是一个否定前瞻断言,确保匹配的位置不是字符串的开始。
- `(?=(\d{3})+$)` 是一个肯定前瞻断言,它查找所有后面跟有至少三个数字的位置,直到字符串末尾。
通过这种方式,我们可以避免在数字的开头添加逗号,并且保证每三个数字之间添加一个逗号。
### 2. 手机号3-3-4格式拼接
手机号的3-3-4格式通常用于提高可读性,例如:1234567890 -> 123-456-7890。这个可以通过简单的字符串切片或正则实现,但具体正则表达式未在文章中给出。通常可以使用以下方法实现:
```javascript
'1234567890'.replace(/^(\d{3})(\d{3})(\d{4})$/, '$1-$2-$3')
```
### 3. trim函数实现
JavaScript内置的`trim()`函数用于删除字符串两端的空白字符,如果需要自定义实现,可以使用正则匹配非空白字符:
```javascript
function trim(str) {
return str.replace(/^\s+|\s+$/g, '');
}
```
### 4. HTML转义
在处理用户输入时,为了防止XSS攻击,需要将HTML特殊字符转义。可以使用以下正则替换来实现:
```javascript
function escapeHTML(html) {
return html.replace(/[&<>"']/g, function(match) {
return '&#' + match.charCodeAt(0) + ';';
});
}
```
### 5. 获取URL查询参数
获取URL中的查询参数,可以使用`URLSearchParams`对象,或者通过正则提取:
```javascript
function getQueryParams(url) {
var params = {};
var regex = /([^?#]+)=?([^&#]*)/g;
var match;
while (match = regex.exec(url)) {
params[decodeURIComponent(match[1])] = decodeURIComponent(match[2]);
}
return params;
}
```
以上内容涵盖了正则在前端开发中的常见应用,掌握这些技巧可以帮助开发者更高效地解决问题,提高代码质量。对于面试者来说,熟悉并能灵活运用这些正则表达式技巧,无疑会增加面试成功的几率。
2010-10-02 上传
2010-04-12 上传
2021-05-06 上传
2020-10-18 上传
2020-12-13 上传
102 浏览量
2021-07-16 上传
前端胖头鱼
- 粉丝: 2
- 资源: 1
最新资源
- 开源通讯录备份系统项目,易于复刻与扩展
- 探索NX二次开发:UF_DRF_ask_id_symbol_geometry函数详解
- Vuex使用教程:详细资料包解析与实践
- 汉印A300蓝牙打印机安卓App开发教程与资源
- kkFileView 4.4.0-beta版:Windows下的解压缩文件预览器
- ChatGPT对战Bard:一场AI的深度测评与比较
- 稳定版MySQL连接Java的驱动包MySQL Connector/J 5.1.38发布
- Zabbix监控系统离线安装包下载指南
- JavaScript Promise代码解析与应用
- 基于JAVA和SQL的离散数学题库管理系统开发与应用
- 竞赛项目申报系统:SpringBoot与Vue.js结合毕业设计
- JAVA+SQL打造离散数学题库管理系统:源代码与文档全览
- C#代码实现装箱与转换的详细解析
- 利用ChatGPT深入了解行业的快速方法论
- C语言链表操作实战解析与代码示例
- 大学生选修选课系统设计与实现:源码及数据库架构