创建正则表达式对象
1 | // 直接赋值 |
开始使用
reg.test(str) // 放回 true 放回是否符合规则
=> true
str.match(reg) // 返回所有符合的结构
=> (4)["ab", "ab", "aB", "ab"]
修饰符号
var reg = /\S/igm
/*
* i => 不区分大小写
* g => 全局查找
* m => 换行查找
*/
元字符
var reg = /[0-9A-z_][@]/g //第一位得范围 数字字母下划线
// \w === [0-9A-z_] 单字符
// \W === [^\w] // 非\w
// \d === [0-9] // 数字
// \D === [^0-9] //非数字
// \s === [\t\n\r\v\f] //空白换行回车等
// \S === [^\s]
// \b === 单词边界
// \B === 非单词边界
// \u**** === 查找以十六进制数 xxxx 规定的 Unicode 字符
// . === [^\r\n]
量词
n+ {1, } // \w+
n* {0, } // \d*
n? {0,1} //
n{x} {x}
n{x, y} {x,y}
n{x, } {x,}
var reg =/^a\w{1,9}c$/i // a开头 c结尾
var str = 'adbuedeC'
reg.test(str)
=> true
var reg =/^\d[\s\S]*\d$/i // 首尾含数字 中间任意
正则得方法
reg.test() // 是否符合规则
reg.exec()
// 用于检索字符串中的正则表达式的匹配 该函数返回一个数组,其中存放匹配的结果。当匹配带/g时,每次调用可以接着上次得查询向后查询, 并且可以通过游标控制查询位置
str.match(reg) // 返回查询得内容
str.replace(reg, '') // 字符串替换 $1$2 可以代表正则中
str.search(reg) // 放回匹配到得位置, 没又返回 -1
str.split(reg) // 拆分字符串
常用记录
1 | // 电话 |
ohter
(pattern) // 匹配pattern并获取这一匹配。所获取的匹配可以从产生的Matches集合得到
(?:pattern) //匹配pattern并获取这一匹配。所获取的匹配可以从产生的Matches集合得到
(?=pattern) //正向 “Windows(?=95|98|NT|2000)”能匹配“Windows2000”中的“Windows”,但不能匹配“Windows3.1”中的“Windows”。
(?!pattern)
(?<=pattern) // 反向 (?<=95|98|NT|2000)Windows”能匹配“2000Windows”中的“Windows”,但不能匹配“3.1Windows”中的“Windows”。
(?<!pattern) //反向否定预查,与正向否定预查类拟,只是方向相反。例如“(?<!95|98|NT|2000)Windows”能匹配“3.1Windows”中的“Windows”,但不能匹配“2000Windows”中的“Windows”。