正则表达式(Regular Expression)是JavaScript中处理文本的强大工具,它允许开发者以编程方式高效地解析、查找、替换或验证文本数据。本文将带你直接上手,深入了解JavaScript中的正则表达式,并学会如何高效地解析文本奥秘。

一、正则表达式基础

1.1 什么是正则表达式?

正则表达式是一种用于匹配字符串中字符组合的模式。在JavaScript中,正则表达式是对象,它就像一个模板,可以帮助你在文本中查找、替换或验证符合特定规则的字符串内容。

1.2 正则表达式的语法组成

字符类(Character Classes)

  • 方括号 [] 用于定义字符类。
    • 例如:[abc] 匹配字符 abc 中的任意一个。
    • 还可以使用范围,如 [a - z] 匹配所有小写字母。
  • 预定义的字符类:
    • d 等价于 [0 - 9],表示数字。
    • D 等价于 [0 - 9],表示非数字。
    • w 等价于 [a - zA - Z0 - 9_],表示单词字符。
    • W 等价于 [^a - zA - Z0 - 9_],表示非单词字符。
    • s 表示空白字符(空格、制表符、换行符等)。
    • S 表示非空白字符。

量词(Quantifiers)

  • *:匹配前面的元素零次或多次。
  • +:匹配前面的元素一次或多次。
  • ?:匹配前面的元素零次或一次。

二、正则表达式的使用

2.1 创建正则表达式

字面量创建

const reg = /abcd/;
console.log(reg);

内置构造函数创建

const reg = new RegExp("abcd");
console.log(reg);

2.2 正则表达式的方法

匹配

  • test():用于测试字符串是否匹配正则表达式。
  • exec():用于执行匹配并返回匹配结果。

捕获

  • match():用于查找匹配的字符串并返回匹配结果数组。

三、正则表达式实战

3.1 正则常用规则大全

  • 校验手机号:/^(13[0-9]|14[0-9]|15[0-9]|17[0-9]|18[0-9])\d{8}$/
  • 校验座机号:/^\d{3,4}-?\d{7,8}$/
  • 校验4位手机数字验证码:/^\d{4}$/
  • 校验邮箱输入:/^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/
  • 校验名字必须为中文:/^[\u4e00-\u9fa5]+$/

3.2 正则常用例子

获取url参数

const url = "http://example.com/?name=张三&age=18";
const reg = /name=([^&]*)/;
const result = url.match(reg);
console.log(result[1]); // 输出:张三

四、总结

掌握JavaScript中的正则表达式,可以帮助你高效地解析文本奥秘。通过本文的学习,你已掌握了正则表达式的基础知识、使用方法和实战技巧。希望你能将所学知识应用到实际项目中,提高你的编程能力。