regular:规则;expression:表达式;
RegExp: regular expression正则表达式,是按照特定的语法规则编写的字符串;用来进行字符串的匹配检查。
使用场景:表单操作是,用来验证用户输入是否符合指定规则。
var reg = // 字面量创建正则验证方式,隐式定义
var reg1 = new RegExp()//实例化构造函数方法创建正则验证。显示定义。
test和exec
```
//定义正则表达式 reg里面存的是对象
let str = "我们都在学前端"
let reg = /前端/ //检测
//检测是否匹配 text,返回值true/false
console.log(reg.test(str));//被检测,,false
// exec()方法在一个指定字符串中执行一个搜索匹配
//返回值是数组,找不到否则返回null
//检索exec()
console.log(reg.exec(str));
```
定义正则表达式
^:匹配字符串的起始位置
var regex1 = /^abc/
//test():是一个正则类型的方法,检测字符串是否满足正则的要求。
//参数:待检测的字符串。
console.log(regex1.test("abcoo"));//true
//$:匹配字符串的结束位置。
var regex2 = /abc$/
console.log(regex2.test("jisindabc"));//true
$:匹配字符串的结束位置。
var regex2 = /abc$/
console.log(regex2.test("jisindabc"));//true
var regex3 = /^abc$///abc开头,abc结尾的
console.log(regex3.test("abcvehivhevheihabc"));//false
console.log(regex3.test("abc"));//true
\b匹配单词边界
var regex4 = /is\b/
console.log(regex4.test("thre gexpis"));//true
console.log(regex4.test("this gexpre"));//true
\d:匹配任意数字
var regex5 = /\d/
console.log(regex5.test("23号saww8"));//true
console.log(regex5.test("erhefhofhoh"));//false
\w:匹配数字字母下划线(字母不区分大小写)
var regex6 = /\w/
console.log(regex6.test("_"));//true
console.log(regex6.test("3"));//true
console.log(regex6.test("v"));//true
\s:匹配空格
var regex7 = /\s/
console.log(regex7.test("a b"));//true
console.log(regex7.test("ab"));//false
. :匹配除换行符外任意字符
var regex8 = /./
console.log(regex8.test("eheuih1232323343"));//true
[]:匹配范围
// [abc]:匹配[]内任一字符
// []:匹配范围
// [0-9] [a-z] [A-Z]
var regex9 = /[0-9a-zA-Z]/
console.log(regex9.test("123934823"));//true
console.log(regex9.test("asudhfihwif"));//true
console.log(regex9.test("VUUCYKULKJ"));//true
console.log(regex9.test("_$dsoe4343"));//true
console.log(regex9.test("_$&*%^$"));//false
:匹配前面的字符0或1次,无上限
+:匹配前面的字符>= 1次,无上限
*:匹配前面的字符>=0次,无上限
{n}:匹配前面的字符n次,无上限
{n,} :匹配前面的字符>= n次,无上限
{n,m} :匹配前面的字符最少n次,最多m次;(n<m)
var regex10 = /^\d{3}$///\d:任意数字 {3}个数,,匹配任意数字个数只有三个
console.log(regex10.test("324"));//true
console.log(regex10.test("32456"));//false
console.log(regex10.test("abd"));//false
console.log(regex10.test("34hh"));//false
console.log(regex10.test("34hccueci"));//false
var regex = /^\d{3,}$///匹配任意数字个数最少三个,最大个数无上限
var regex11 = /^\d{3,6}$///匹配任意数字个数3~6个,包含3和6
console.log(regex11.test("34"));//false
console.log(regex11.test("327677"));//true
|:或者
var regex12 = /^a(b|c)d$///从a开始,中间字符可以说b或者c,然后必须以d结尾
console.log(regex12.test("ccd"));//false
console.log(regex12.test("acd"));//true
console.log(regex12.test("abd"));//true
console.log(regex12.test("abcd"));//false
console.log(regex12.test("abcfd"));//false
[\u4e00-\u9fa5]:匹配任意中文字符
[\u4e00-\u9fa5]
修饰符
g:全局检索,不加的话智慧检索第一次出现的
i:不区分大小写。ignore(忽略)
replace替换
var str1 = "hello regExp"
console.log(str1.replace(/e/g, "9"));//把所有小写的e替换成9
弱密码:只有数字6-8位/^\d{6,8} $ /
中密码:包含数字字母下划线6-8位/^ \ w{6,8} $ /
强类型:大写字母开头,之后包含数字字母下划线6-8位 /^ [A-Z]\w{5,7} $ /
var password = prompt("请输入密码")
var numreg = /^\d{6,8}$/
var letterreg = /^\w{6,8}$/
var strongreg = /^[A-Z]\w{5,7}$/
if (numreg.test(password)) {
console.log("弱密码,请加强");
} else if (letterreg.test(password)) {
console.log("中密码,请再加强");
} else if (strongreg.test(password)) {
console.log("强密码,可以了");
}