JS-正则表达式

正则表达式

正则表达式是描述字符模式的对象。正则表达式用于对字符串模式匹配及检索替换,是对字符串执行模式匹配的强大工具


验证

正则表达式的对象去调用test方法,将字符串作为参数,返回一个布尔类型

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <script>
      //定义一个正则表达式
      var reg = /o/;
      //自定义一个字符串
      var str = "hello world";
      //校验是否符合正则规则(字符串中是否包含字母o)
      console.log(reg.test(str));
    </script>
  </head>
  <body></body>
</html>


匹配

使用字符串去调用match方法,将正则作为参数,返回的是一个result对象

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <script>
      //定义一个正则表达式
      var reg = /o/g;
      //自定义一个字符串
      var str = "hello world";
      
      var result = str.match(reg);
      console.log(result);
    </script>
  </head>
  <body></body>
</html>

注:正则表达式默认只匹配第一个值,如果需要全部值,则需要在正则后加参数 g


替换

使用字符串去调用replace方法,将正则和新字符作为参数,返回的是一个字符串对象

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <script>
      //定义一个正则表达式
      var reg = /o/gi;
      //自定义一个字符串
      var str = "hello world";
      //将所有符合正则的字符替换成@
      var newStr = str.replace(reg, "@");
      console.log(newStr);
    </script>
  </head>
  <body></body>
</html>

注:正则默认替换是区分大小写,加入参数i则忽略大小写


正则表达式验证

  • /java$/:是否以java作为结尾
  • /^java/:是否以java作为开头
  • /^java$/:是否以java作为开头和结尾(常常用来控制长度)
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <script>
      //定义一个正则表达式
      var reg1 = /java$/;//是否以java作为结尾
      var reg2 = /^java/;//是否以java作为开头
      var reg2 = /^java$/;//是否以java作为开头和结尾
      //自定义两个字符串
      var str1 = "i love java";
      var str2 = "java love me";
      //验证
      console.log(reg1.test(str1));//true
      console.log(reg1.test(str2));//false
      console.log(reg2.test(str1));//false
      console.log(reg2.test(str2));//true
    </script>
  </head>
  <body></body>
</html>

匹配字符
  1. 用户名以字母开头
  2. 组成必须是字母数字下划线
  3. 长度在6-10位
//定义一个正则表达式
var reg = /^[a-zA-Z]$/;//字符串只有1位,且必须是字母
var reg = /^[a-zA-Z][a-zA-Z0-9_]$/;//字符串只能有2位,第一位是字母,第2位是字母数组下划线
var reg = /^[a-zA-Z][a-zA-Z0-9_]{6}$/;//字符串只能有7位,第一位是字母,必须有6位字符满足字母数组下划线
var reg = /^[a-zA-Z][a-zA-Z0-9_]{5,9}$/;//字符串可以有6-10位,第一位是字母,可以有5-10字符满足字母数组下划线
var reg = /^[a-zA-Z][a-zA-Z0-9_]{1,}$/;//字符串不限制长度,第一位是字母,至少有1位字符满足字母数组下划线(可以有不限制多个)
var reg = /^[a-zA-Z][a-zA-Z0-9_]+$/;//字符串不限制长度,第一位是字母,至少有1位字符满足字母数组下划线(可以有不限制多个)
var reg = /^[a-zA-Z][a-zA-Z0-9_]*$/;//字符串不限制长度,第一位是字母,至少有0位字符满足字母数组下划线(可以有不限制多个)
var reg = /^[a-zA-Z][a-zA-Z0-9_]?$/;//字符串最多有两位,第一位是字母,有0位或1位字符满足字母数组下划线(限制一个)

正则表达式的元字符
var reg = /^[a-zA-Z]\w$/;//\w查找字母、数字及下划线
var reg = /^[a-zA-Z]\w{5,9}$/;//字符串可以有6-10位,第一位是字母,可以有5-10字符满足字母数组下划线
var reg = /^[a-zA-Z]\W$/;//\W查找非字母、数字及下划线
var reg = /^[a-zA-Z]\d$/;//\d查找数字
var reg = /^[a-zA-Z]\D$/;//\D查找非数字

正则表达式 – 元字符 | 菜鸟教程 (runoob.com)


常用的正则表达式
需求正则表达式
用户名/^[a-zA-Z][a-zA-Z-0-9]{5-9}$/
密码/^[a-zA-Z0-9_-@#&*]{6-12}$/
前后空格/^\s+|\s+$/g
电子邮箱/^[a-zA-Z0-9_.-]+@([a-zA-Z0-9]+[.]{1})+[a-zA-Z]+$/

正则表达式在开发的过程中只需要读懂,在网上寻找现有的正则模板使用即可