加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则练习

发布时间:2020-12-14 05:34:37 所属栏目:百科 来源:网络整理
导读:! DOCTYPE html html lang ="en" head meta charset ="UTF-8" title 正则表达式练习 / title / head style ul { list-style : decimal ; } / style body div class ="reg" h2 正则的元字符和修饰符 / h2 h3 修饰符 / h3 ul li g(global):全局匹配 / li li i(
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>正则表达式练习</title>
</head>
<style>
  ul{
    list-style: decimal;
  }
</style>
<body>
    <div class="reg">
      <h2>正则的元字符和修饰符</h2>
      <h3>修饰符</h3>
      <ul>
        <li>g(global):全局匹配</li>
        <li>i(ignoreCase):忽略大小写匹配</li>
        <li>m(multiline):多行匹配</li>
      </ul>
      <hr>
      <h3>元字符</h3>
      <p>[量词元字符]</p>
      <ul>
        <li>+:出现1-n次</li>
        <li>?:出现0-1次</li>
        <li>*: 出现0-n次</li>
        <li>{n}出现n次</li>
        <li>{n,}出现n到多次</li>
        <li>{n,m}出现n到m次</li>
      </ul>
      <hr>
      <p>[特殊意义的元字符]</p>
      <ul>
        <li>:转义字符(把一个普通字符转变为有特殊意义的字符,或者把一个有意义字符转换为普通的字符)</li>
        <li>.:除了n(换行符)以外的任意字符</li>
        <li>d: 匹配一个0-9之间的数字</li>
        <li>D:匹配任意一个非0-9之间的数字</li>
        <li>w:匹配一个0-9或者_之间的字符</li>
        <li>W:匹配一个非0-9或者_之间的字符</li>
        <li>s: 匹配一个任意空白符</li>
        <li>S: 匹配一个非任意空白符</li>
        <li>b:匹配一个边界符</li>
        <li>B:匹配一个非边界符</li>
        <li>x|y: 匹配x或者y中的一个</li>
        <li>[a-z]: 匹配a-z的任意字符</li>
        <li>[^a-z]: 匹配任意一个非a-z的字符</li>
        <li>[xyz]: 匹配x或者y或者z的一个字符</li>
        <li>[^xyz]: 匹配除了xyz以外的任意字符</li>
        <li>(): 正则的小分组,匹配一个小分组(小分组可以理解为大正则中的小正则)。小分组第二个作用:分组引用。第三个作用:分组捕获</li>
        <li>^:以某一个元字符开始</li>
        <li>$: 以某一个元字符结束</li>
        <li>?: :只匹配不捕获</li>
        <li>?=: 正向预查</li>
        <li>?!:负向预查</li>
      </ul>
      <br>
      <hr>
      <p>分组引用(1 或者 2... 出现第n个分组一模一样的内容)</p>
      <p>
        <span>var reg = /^([a-z])([a-z])2([a-z])$/</span><br>
        <span>例如:foot,book,week,oppo,http</span>
      </p>
      <br>
      <hr>
      <p>分组捕获</p>
      <p>中括号出现的元字符,一般都代表本身的含义</p>
      <p>例如:
        <span>var reg = /^[.?+&]/;  =>里边的四个元字符都是本身含义,例如:.就是小数点,不是所谓的任意字符</span>
      </p>
    </div>
</body>
<script type="text/javascript">
// var reg = /^$/ // 俩斜杠之间包含的一些内容就是正则,俩个斜杠之间包含的全部内容都是元字符


// $ 匹配字符串的结尾位置
// * 匹配前面的子表达式0次或者多次
// + 匹配前面的子表达式1次或者多次
// ? 匹配子表达式0次或者1此次 例如do(es)?  可以匹配‘do‘、‘does‘、‘doytss‘中的do
// {n} n是一个非负整数。匹配确定n的次数。 例如‘t{2}‘不能匹配‘dot‘中的t,但是能匹配‘dotted‘中的俩个t
// {n,} n是一个非负整数。至少匹配n次,例如‘t{2,}‘不能匹配‘dot‘中的t,但是能匹配‘dotttttt‘中的所有t
// {n,m} n和m都是非负整数,其中n<=m。 最少匹配n次且最多匹配m次。例如‘t{1,3}‘将匹配‘dotttttt‘中的前三个t
// b 匹配一个单词边界,也就是指单词和空格键的位置
// B 匹配非单词边界。
var reg = /^[0-9]{5}t{1,3}do(es)*a$/
var text = 32134tttdoesa
console.log(reg.test(text))

var reg1 = /^[1-9][0-9]{1}$/
console.log(reg1.test(22))


var reg2 = /<.*?>/
let b = <h1>dsasda</h1>
console.log(b.match(reg2))

// 正则过滤a,b,c
var text3 = pjkmjknjlabcn
var reg3 = /[a,c]/g
console.log(text3.replace(/[a,c]/g,‘‘));

// 所有的正整数 
var reg3 = /^[1-9][0-9]{0,}/
var num = 98
console.log(reg3.test(num))

// 所有的正整数 
var reg4 = /^[1-9]0$/
var num1 = 10
console.log(reg4.test(num1))

var url = http://baidu.com:8080?user=name&pwd=password
var reg4 = /(w+)://([^/:]+)(:d*)?([^# ]*)/
console.log(url.match(reg4))

function regNum(x=0) {
  return x.toString().replace(/B(?=(d{3})+(?!d))/g,,)
}
console.log(regNum(23456))

var reg8 = /^18|19$/ 
 // 以18开头或者以19结尾
 // 以1开头,以9结尾,中间是8或者1
 // 以18开头或者19结尾即可 =》‘你好18‘  ‘18你好‘
console.log(reg8.test(18))
console.log(reg8.test(19))
console.log(reg8.test(1819))
console.log(reg8.test(181))
console.log(reg8.test(819))
console.log(reg8.test(181))
console.log(reg8.test(你好18)) // false
console.log(reg8.test(你好19)) // true
console.log(reg8.test(18你好))

var reg9 = /^(18|19)$/ //  只有18或者19符合
console.log(reg9.test(18))
console.log(reg9.test(19))
console.log(reg9.test(1819)) // false

// 中括号出现的元字符,一般都代表本身的含义
var regs = /^[.?+&]/;
console.log(regs.test(18)) //false
console.log(regs.test(.d)) //true
console.log(regs.test(+d)) //true
console.log(regs.test(?)) //true


// 以数字、字母、下划线、-,并且不能以-开头
var regt = /^w[w-]*$/
console.log(regt.test(9-2)) //true
console.log(regt.test(-2)) //false


// 验证18-65之间的年龄
// var regy = /^[18-65]$/  =>1或者8-6或者5中的任意一个字符,中括号中出现的18不是数字,而是1或者8,当前正则是非法的,不能设置这种范围
// 分三个阶段 
// 1、18或者19
// 2、 20-50  
// 3、60-65
// var regage = /^((18|19)|([2-5]d)|(6[0-5]))$/
var regage = /^((18|19)|([2-5]d)|(6[0-5]))$/
console.log(regage.test(23))
</script>
</html>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读