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>
匹配字符
- 用户名以字母开头
- 组成必须是字母数字下划线
- 长度在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]+$/ |
正则表达式在开发的过程中只需要读懂,在网上寻找现有的正则模板使用即可