JavaScript进阶学习day9-APIs_day6

正则表达式

1、表单验证、过滤敏感词

2、语法:

①定义规则

const 规则名=/表达式/

②查找

test()用来查看正则表达式与指定的字符串是否匹配

定义的规则名.test(被检测的字符串)

  const rule = /你好/
  const str = '你好,今天你吃饭了吗,睡觉了吗,打喷嚏了吗,想我了吗'
  console.log(rule.test(str));//匹配返回true,否则返回false

③检索(查找)符合规则的字符串(了解就行)

exec()在一个指定字符串中执行一个搜索匹配

  const rule = /你好/
  const str = '你好,今天你吃饭了吗,睡觉了吗,打喷嚏了吗,想我了吗'
  console.log(rule.exec(str));//匹配返回的是数组

元字符

1、特殊的字符

2、分类:边界符、量词、字符类

①边界符

^表示匹配行首的文本(以谁开始)

$表示匹配行尾的文本(以谁结束)

  console.log(/^哈/.test('哈哈'))//true,因为定义规则是以哈开头
  console.log(/^哈/.test('二哈'))//false,因为定义规则是以哈开头,而测试的字符串不是
  console.log(/^哈$/.test('哈哈'))//false,因为是精确匹配,只能出现一个哈才算正确

②量词:用来设定某个模式出现的次数

 
  console.log(/^哈*$/.test(''))//true,出现0个哈,匹配
  console.log(/^哈*$/.test('哈哈'))//true重复出现2次
  console.log(/^哈*$/.test('哈二哈'))//false,只能出现哈,不能出现其他
  console.log('*****************************')
  console.log(/^哈+$/.test(''))//false ,出现0个哈,不匹配,要大于1
  console.log(/^哈*$/.test('哈哈'))//true重复出现2次
  console.log(/^哈*$/.test('哈二哈'))//false,只能出现哈,不能出现其他
  console.log('*****************************')
  console.log(/^哈?$/.test(''))//true,出现0个哈,匹配
  console.log(/^哈?$/.test('哈哈'))//true重复出现2次
  console.log(/^哈?$/.test('哈二哈'))//false,只能出现哈,不能出现其他
 量词{n}写几,就必须出现几次  
  
  console.log(/^哈{4}$/.test('哈哈'))//false,因为不能超过4次
  console.log(/^哈{4}$/.test('哈哈哈哈'))//true,出现四次
  console.log(/^哈{4}$/.test('哈哈哈哈哈'))//true,可以超过四次
  console.log('*****************************')

量词{n,}写几,就意味着出现的次数为大于等于n,逗号两边不能有空格

  console.log(/^哈{4}$/.test('哈哈'))//false,因为不能超过4次
  console.log(/^哈{4}$/.test('哈哈哈哈'))//true,出现四次
  console.log(/^哈{4}$/.test('哈哈哈哈哈'))//true,可以超过四次
  console.log('*****************************')

量词{n,m},就意味着出现的次数大于等于n,小于等于m

  console.log(/^哈{4,6}$/.test('哈哈哈哈'))//true
  console.log(/^哈{4,6}$/.test('哈哈哈哈'))//true,出现5次
  console.log(/^哈{4,6}$/.test('哈哈哈哈哈哈哈哈哈'))//false,因为超过6次
  console.log('*****************************')

③字符类

[abc]只要匹配的字符串匹配abc里面其中一个就行,如果是精确匹配的话只选一个,匹配小写字母[a-z],匹配大写字母[A-Z],匹配数字[0-9],

  console.log(/^[abc]$/.test('a'));//true
  console.log(/^[abc]$/.test('abc'));//false,精确匹配,只匹配一个
  console.log(/[abc]/.test('apple boy cat '));//不是精确匹配,可以匹配多个
  console.log(/^[abc]{3}$/.test('abc'));//true,指定可以重复个数
  console.log(/^[a-z0-9A-Z]{3}$/.test('a2A'))//true,只能输入字母和数字

[^a-z],在中括号里面添加^,代表取反,除了小写字母之外的

3、修饰符

 
const str = '学习java,学完java一生幸福'
  const re = str.replace(/java/i, '前端')//只会找到第一个匹配的,学习前端,学完java一生幸福
  console.log(re);
  const res = str.replace(/java/g, '前端')//找到全部匹配的,学习前端,学完前端一生幸福

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值