今天给大家分享一下前端开发中正则表达式的核心知识点和实战用法。正则表达式在字符串处理、表单验证等场景里非常实用,掌握它能让你的代码更高效。
当然在你了解了什么是正则后,你也可以灵活的使用插件来为你服务,例如any-rule等。
正则表达式是一种用来匹配字符串的强大工具,在 js 中我们通常用字面量方式定义
|
1 |
const reg = /需要匹配的规则/修饰符; |
|
1 2 3 4 5 6 7 |
const reg = /西游记/g; const str = '西游记是四大名著之一,我爱看西游记';
console.log(reg.test(str)); // true console.log(reg.exec(str)); // ["西游记", index: 0, ...] console.log(str.match(reg)); // ["西游记", "西游记"] console.log(str.replace(reg, '红楼梦')); // "红楼梦是四大名著之一,我爱看红楼梦" |
修饰符用来调整正则的匹配模式
|
1 2 3 |
const reg = /you/gi; const str = 'You是you俺是俺you不是俺俺不是you'; console.log(str.match(reg)); // ["You", "you", "you", "you"] |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
// 匹配独立的单词 "an" const reg1 = /\ban\b/ig; const str1 = 'an Apple,an Ant'; console.log(str1.match(reg1)); // ["an", "an"]
// 匹配以 "ab" 开头的字符串 const reg2 = /^ab/; console.log(reg2.test("aabab")); // false
// 匹配以 "ab" 结尾的字符串 const reg3 = /ab$/; console.log(reg3.test("aababb")); // false
// 精确匹配单个字符 "a" const reg4 = /^a$/; console.log(reg4.test('a')); // true |

|
1 2 3 4 |
// 匹配以 0 个或 1 个 "a" 结尾的字符串 const reg = /a?$/; console.log(reg.test('a')); // true console.log(reg.test('aa')); // false |

|
1 2 3 4 5 6 7 |
// 匹配包含 a、b、c 中任意一个字符的字符串 const reg = /[abc]/; console.log(reg.test("ededfd")); // false
// 匹配非数字字符 const reg5 = /[^0-9]/; console.log(reg5.test('adad')); // true |
|
1 2 3 4 5 6 7 8 |
// 日期格式转换:2026-01-30 → 01/30/2026 const data = '2026-01-30'; const reg1 = /^(\d{4})-(\d{2})-(\d{2})$/; console.log(data.replace(reg1, '$2/$3/$1')); // "01/30/2026"
// 匹配"西游记"或"红楼梦" const reg2 = /西游记|红楼梦/; console.log(reg2.test("红楼梦")); // true |
|
1 2 3 4 |
// 13721333097 → 137****3097 const data1 = '13721333097'; const reg1 = /^(\d{3})(\d{4})(\d{4})$/; console.log(data1.replace(reg1, '$1****$3')); |
|
1 2 3 4 |
// 验证6-16位字母、数字、下划线 const reg2 = /^\w{6,16}$/; console.log(reg2.test('aba123456_')); // true console.log(reg2.test('1234567890?')); // false |
|
1 2 3 4 |
// 匹配 #ff0000 或 #0f0 格式 const reg3 = /^#[a-fA-F0-9]{6}$|^#[a-fA-F0-9]{3}$/; console.log(reg3.test('#ff0000')); // true console.log(reg3.test('#0f0')); // true |
|
1 2 3 4 |
// 匹配 00:00 到 23:59 的时间 const reg4 = /^([01]\d|2[0-3]):([0-5]\d)$/; console.log(reg4.test('23:59')); // true console.log(reg4.test('25:00')); // false |