JavaScript学习的第十四天

正则表达式

常用于表单验证(判断用户填写的内容是否正确)

正则表达式 可以使用 **// **是声明一个正则对象

正则对象定义方式

第一种定义 常用

声明的就是一个正则对象 ^表示开头 $表示结尾 只匹配一个b这一个单词

var regx = /^b$/

第二种定义

声明一个正则对象 只匹配a这个单词

var regx = new RegExp('^a$')

匹配方式

[]表示其中的一个元素

匹配a 或者 b 或者 c 或者 c 或者 d 或者 e 或者 f

var reg = /^[abcdef]$/

{}表示个数aa

匹配aa ab ac ba bb bc ca cb cc 意思abc三个元素任意两个组成的单词

var rag = /^[abc]{2}$/

g全局匹配(全局搜索所有的结果 没有全局找到第一个就不找了) i表示不区分大小写

匹配 aa ab ba bb Aa aA Ab aB Ba AB BA bA

var reg = /^[ab]{2}$/gi

使用第二种定义如果需要加上g或i关键词

匹配 aa ab ba bb Aa aA Ab aB Ba AB BA bA

var reg = new RegExp('^a$','gi')

修饰符

+表示1个到多个

匹配 a aa aaa aaaa…

var reg = /^[a]+$/

*表示0个到多个

var reg = /^a[ab]*$/

?表示0个到一个

匹配 a aa ab

var reg = /^a[ab]?$/

.表示任意字符 如果你想匹配点需要\转义 \ .匹配点

var reg = /./
var str = ' '
console.log(reg.test(str))

\s 表示空白 \S 表示非空

var reg = /\s/
var str = ' '
console.log(reg.test(str))
var reg1 = /\S/
console.log(reg1.test(str))

\d 表示数字 \D 表示非数字

var reg1 = /\d/
var reg2 = /\D/
console.log(reg1.test('123'))
console.log(reg2.test('123'))

\w 表示数字字母下划线 \W 非数字字母下划线

var reg1 = /\w/
var reg2 = /\W/
console.log(reg1.test('_'))
console.log(reg2.test('_'))

() 没什么大的意义 主要做代码的范围分割

var reg = /([a][b]){2}/ //匹配的元素只有abab

可以直接取出括号里面的值 没有匹配谁 谁近拿谁

拿的reg2的

var reg1 = /([a][b][c]){2}/
var reg2 = /([a][b]){2}/
console.log(RegExp.$1)//取出第一个括号里面的内容 
console.log(RegExp.$2)//去除第二个括号里面的内容

| 或

var reg = /abc|bcd///匹配abc 或者bcd
console.log(reg.test('abc'))//true
console.log(reg.test('bcd'))//true

如果加了?后面的括号里的内容不能捕获了,不能使用RegExp.$获取

/m换行匹配

{}表示个数 可以规定个数的范围{1,2} 表示1个到2个 {1}表示1个 {1,}一个到多个

console.log(/a{1,2}/.test('111'))//这个是true 因为没写开头^和结尾$ 表示a是1个或者2个

对应正则对象的方法

test()

test 是否符合对应的表达式 test() 里面的参数为string类型 返回的结果为boolean类型

var reg = /^a[ab]?$/
console.log(reg.test('a'))//true
console.log(reg.test('aba'))//false

exec()

找到符合的所有结果 返回数组 没有匹配的返回null

var reg = /^a[ab]?$/
console.log(reg.exec('ab'))

针对于里面的[] * + .等等 没有办法直接解析的 需要加转义符\

var reg = /^\[\]$/
console.log(reg.test('[]'))//true

支持正则

string 类型支持正则的方法

split 截取方法

replace 替换方法

search 搜索方法

match 正则对象的exec方法很像 返回的也是一个数组 里面的元素未匹配的结果 只会返回第一个找到的结果

test 方法 判断是否有匹配的 有返回true 没有放回false

exce 方法 返回一个数组 只会返回第一个找到的结果

如果加 g 的话 从左往右找 找到的元素就不管了

var reg  = /[abc]{2}/g
console.log('abcabb'.match(reg))//全局查找 ab ca bb找到的就不会找了
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值