前言:正则表达式是一种复杂类型,在写表单的时候用的居多,本课程主要简单的介绍了JS中正则表达式的介绍和基本用法
目录
创建方法
如何用正则表达式,我们需要创建正则表达式,才能使用,其中创建方法又分两种——字面量,内置构造函数
字面量
var reg = /abc/
// 创建了一个简单的正则表达
内置构造函数
var reg2 = new RegExp("abc")
// 创建了一个正则表达式
边界符
边界符主要用于给正则表达式首个字符或者结尾字符设置规则,两个同时用也可以达到精准匹配的效果
边界符 ^ - 表示匹配首行的文本(以谁开始)
var txt = /^a/
console.log(txt.test("aaaaa")) // 返回 True
console.log(txt.test("baaaa")) // 返回 False
边界符 $ - 表示匹配行尾的文本(以谁结束)
var txt = /a$/
console.log(txt.test("aaaaa")) // 返回 True
console.log(txt.test("aaaab")) // 返回 False
量词
量词 * - 重复零次 或 多次
var txt = /abc*/
console.log(txt.test("ab")) // 返回 True
console.log(txt.test("abccc")) // 返回 True
console.log(txt.test("cab")) // 返回 False
量词 + - 重复一次 或 多次
var txt = /abc+/
console.log(txt.test("ab")) // 返回 False
console.log(txt.test("abc")) // 返回 True
console.log(txt.test("abccc")) // 返回 True
console.log(txt.test("cab")) // 返回 False
量词 ? - 重复零次 或 一次
var txt = /abc?/
console.log(txt.test("ab")) // 返回 True
console.log(txt.test("abc")) // 返回 True
console.log(txt.test("abccc")) // 返回 False
console.log(txt.test("cab")) // 返回 False
量词 {n} - 重复n次
var txt = /^abc{2}$/
// 只有配合边界符的使用才能让{n}只能重复n次,而不在于变成n+x(变量),那是{n,}的活
console.log(txt.test("ab")) // 返回 False
console.log(txt.test("abc")) // 返回 False
console.log(txt.test("abccc")) // 返回 True
量词 {n,} - 重复n次 或 多次
var txt = /abc{2,}/
console.log(txt.test("ab")) // 返回 False
console.log(txt.test("abc")) // 返回 False
console.log(txt.test("abcc")) // 返回 True
console.log(txt.test("abccc")) // 返回 True
console.log(txt.test("abcccccccc")) // 返回 True
量词 {n,m} - 重复n次 或 m次
var txt = /abc{2,3}/
console.log(txt.test("ab")) // 返回 False
console.log(txt.test("abc")) // 返回 False
console.log(txt.test("abcc")) // 返回 True
console.log(txt.test("abccc")) // 返回 True
console.log(txt.test("abcccccccc")) // 返回 False
字符类
字符类 \d - 必须包含一位数字(0-9)
var reg = /\d/
console.log(reg.test("abc")) // 返回False
var reg2 = /\d/
console.log(reg.test("123")) //返回Ture
字符类 \D - 必须包含一位非数字(a-z)
var reg = /\D/
console.log(reg.test("abc")) // 返回Ture
var reg2 = /\D/
console.log(reg.test("123")) // 返回False
var reg3 = /\Dk\D/
console.log(reg2.test("aka")) // 返回Ture
字符类 \s - 必须包含一位(空格,缩进,换行)
var reg = /\s/
console.log(reg.test("12ab 34cd")) // 返回Ture
console.log(reg.test("abc")) // 返回False
console.log(reg.test("abc\n456")) // 返回Ture
字符类 \S - 必须包含一位非(空格 缩进 换行)
var reg = /\S/
console.log(reg.test("12ab 34cd")) // 返回Ture
console.log(reg.test(" ")) // 返回False
console.log(reg.test("\n\n\n")) // 返回False
字符类 \w - 必须包含一位(字母 数字 下划线)
var reg = /\w/
console.log(reg.test("&*")) // 返回False
console.log(reg.test("12abc")) // 返回Ture
console.log(reg.test("a")) // 返回Ture
console.log(reg.test("1")) // 返回Ture
console.log(reg.test("_")) // 返回Ture
var reg2 = /\w\w/
console.log(reg2.test("&*")) // 返回False
console.log(reg2.test("12abc")) // 返回Ture
console.log(reg2.test("a")) // 返回False
console.log(reg2.test("1")) // 返回False
console.log(reg2.test("_")) // 返回False
字符类 \W - 必须包含一位(字母 数字 下划线)
var reg = /\W/
console.log(reg.test("&*")) // 返回True
console.log(reg.test("12abc")) // 返回False
console.log(reg.test("a")) // 返回False
console.log(reg.test("1")) // 返回False
console.log(reg.test("_")) // 返回False
var reg2 = /\W\W/
console.log(reg2.test("&*")) // 返回False
console.log(reg2.test("12abc")) // 返回False
console.log(reg2.test("a")) // 返回False
console.log(reg2.test("1")) // 返回False
console.log(reg2.test("_")) // 返回False
字符类 . - 任意内容(不包含换行)
var reg = /./
console.log(reg.test("%^&*")) // 返回Ture
console.log(reg.test("ba\nck")) // 返回Ture
console.log(reg.test("123")) // 返回Ture
console.log(reg.test("\n\n\n\n\n")) // 返回False
字符类 \ - 转义字符
var reg = /\d\.\d/
console.log(reg.test("1.2")) // 返回Ture
console.log(reg.test("1a2")) // 返回False