JavaScript 正则表达式(笔记)
什么是正则表达式?
- 正则表达式是一种用于匹配文本规律的表达式。
- 在 JavaScript 中,由 RegExp 对象来支持正则表达式的相关操作。
正则表达式语法
在 JavaScript 中,我们可以使用特殊字符来创建正则表达式模式。下面介绍一些基本语法。
字符组 []
字符组用于匹配多个字符中的任意一个。
示例:
// 匹配 a、b、c 中的任意一个字符
const pattern = /[abc]/;
console.log(pattern.test('a')); // true
console.log(pattern.test('d')); // false
元字符 .
元字符 . 匹配除了换行符以外的任意字符。
示例:
// 匹配任意字符
const pattern = /./;
console.log(pattern.test('a')); // true
console.log(pattern.test('\n')); // false
量词 {}
量词用于匹配出现次数,分为以下几种:
- {n}:匹配恰好 n 次。
- {n,m}:匹配最少 n 次,最多 m 次。
- {n,}:匹配至少 n 次。
示例:
// 匹配 3 个数字
const pattern = /\d{3}/;
console.log(pattern.test('123')); // true
console.log(pattern.test('12')); // false
位置表示符 ^ 和 $
位置表示符用于匹配起始位置和结束位置。
- ^:匹配输入的开始位置
- $:匹配输入的结束位置
示例:
// 匹配以 a 开头的字符串
const pattern = /^a/;
console.log(pattern.test('abc')); // true
console.log(pattern.test('bcd')); // false
// 匹配以 z 结尾的字符串
const pattern = /z$/;
console.log(pattern.test('xyz')); // true
console.log(pattern.test('abc')); // false
正则表达式的方法
常用的正则表达式相关方法有:
- RegExp.test():测试一个字符串是否匹配某个正则表达式。
- RegExp.exec():执行一个正则表达式匹配,返回匹配结果数组。
- String.match():与 RegExp.exec() 方法类似,返回一个匹配结果数组。
- String.replace():使用一个指定的字符串或者函数来替换指定的值。
- String.search():执行一个正则表达式匹配,返回匹配结果在字符串中的起始位置。
- String.split():使用正则表达式进行分割字符串。
示例
验证手机号码
function isMobilePhone(val) {
const pattern = /^1[3456789]\d{9}$/;
return pattern.test(val);
}
console.log(isMobilePhone('13712345678')); // true
console.log(isMobilePhone('12345678901')); // false
提取 URL 中的参数
const url = 'https://www.example.com/search?q=javascript&page=2#result';
// 提取参数
const params = url.match(/(\w+)=(\w+)/g).map(match => match.split('=')).reduce((acc, [key, value]) => ({ ...acc, [key]: value }), {});
console.log(params); // { q: 'javascript', page: '2' }
以上就是 JavaScript 正则表达式的完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript 正则表达式(笔记) - Python技术站