正则表达式中的常用字符

正则表达式中的常用字符

正则表达式是很多语言都不可缺少的,今天我们一起来看看javaScripe中正则表达式常用的一些特殊字符。
那到底,什么是正则表达式呢?我们为什么要用到它呢?

  • 定义:
    正则表达式(英语:Regular Expression,在代码中常简写为regex、regexp或RE)使用单个字符串来描述、匹配一系列符合某个句法规则的字符串搜索模式。

  • 创建正则对象的两种方法
    (1)通过构造函数创建(new)
    ( 2 )通过字面量创建(/ /)

        //通过构造函数创建
        var RegExp = new RegExp()
        
        //通过字面量创建(/中间可以加任何内容/)
        var RegExp1 = /123/      
  • 正则表达式中的常用字符

-基本元字符
(1) 字符 . 表示任一个非换行的字符

 var reg = /wewr@\.3124314/
 var str = 'wewr@.3124314'
 console.log(reg.test(str)) //true

(2)字符 [ ]方括号用于查找某个范围内的字符:

   //匹配出现在[]中的字符
        var reg1 = /[s]/
        var str1 = 'sas'
        console.log(reg1.test(str1)) //true
     //查找符合a-z之间的字符,符合返回true,不符合返回false
        var reg = /[a - z]/
        var str = '12233'
        console.log(reg.test(str))//false

(3)字符 | 匹配表达式中的一个就行

        var reg2 = /a|b|c/
        var str1 = 'sas'
        console.log(reg2.test(str1)) //true

(4)

  • 限定元字符
    (1)字符* 紧跟前面的一个字符或一组字符出现 0 次到多次
 var reg = /bo*/
        var str = ' A bird warbled'
        var str1='A ghost booooed'
        var str2='A jkeoitfret'
        console.log(reg.test(str))//匹配0次。所以返回true
        console.log(reg.test(str1))//匹配多次。所以返回true
        console.log(reg.test(str2))//没找到b,返回false

(2) 字符+ 紧跟在前面的字符出现 1 次到多次

 var reg = /bo+/
        var str = ' A bird warbled'
        var str1 = 'A ghost booooed'
        var str2 = 'A jkeoitfret'
        var str3 = 'A jibojshduw'
        console.log(reg.test(str)) //匹配0次。所以返回false
        console.log(reg.test(str1)) //匹配多次。所以返回true
        console.log(reg.test(str2)) //没找到b,返回false
        console.log(reg.test(str3)) //匹配一次。所以返回true

(3)字符 ? 紧跟在前面的字符出现 0 次或 1 次

 var reg = /bo?/
        var str = ' A bird warbled'
        var str1 = 'A ghost booooed'
        var str2 = 'A jkeoitfret'
        var str3 = 'A jibojshduw'
        console.log(reg.test(str)) //匹配0次。所以返回true
        console.log(reg.test(str2)) //没找到b,返回false
        console.log(reg.test(str3)) //匹配一次。所以返回true

(4)字符{n} 这里的n是一个正整数。匹配前面的n个字符。

 var reg = /p{2}/
        var str = 'pink'
        var str1 = 'ppink'
        var str2 = 'pipnk'
        var str3='ppppppppink'
        console.log(reg.test(str)) //只有一个p,所以不匹配,返回false
        console.log(reg.test(str1)) //匹配两个'a',返回true
        console.log(reg.test(str2))//false
        console.log(reg.test(str3))//匹配前面的两个,返回true

(4)字符{n,} 这里的n是一个正整数。匹配至少n个前面的字符。

var reg = /p{2}/
        var str = 'pink'
        var str1 = 'ppink'
        var str2='ppppink'
        console.log(reg.test(str)) //只有一个p,所以不匹配,返回false
        console.log(reg.test(str1)) //匹配两个'a',返回true
        console.log(reg.test(str2))//匹配超过两个p,返回true

(5)字符{n,m} 这里的n和m都是正整数。匹配至少n个最多m个前面的字符。

  var reg = /p{1,3}/
        var str = 'pink'
        var str1 = 'ppink'
        var str2 = 'ink'
        var str3 = 'ppppppppink'
        console.log(reg.test(str)) //匹配一个p,返回true
        console.log(reg.test(str1)) //匹配两个'p',返回true
        console.log(reg.test(str2)) //无p不匹配,返回false
        console.log(reg.test(str3)) //可以匹配前面的三个,返回true
  • 首尾表达
    (1)字符^ 表示必须以 xxx 开头
//表示必须以a开头
        var reg = /^a/
        var str = 'abcd'
        var str1 = 'Abcd'
        console.log(reg.test(str))//true
        console.log(reg.test(str1))//false

(2)字符$
意义:与^类似, $ 表示必须以 xxx 结尾

 //表示必须以a结尾
        var reg = /a$/
        var str = 'abcd'
        var str1 = 'Abca'
        console.log(reg.test(str)) //false
        console.log(reg.test(str1)) //true
  • 其他
    (1)\d 匹配一个字数字符,/\d/ = /[0-9]/
   //随机生成0-9中的两个数字
        var reg = /\d{2}/
         //随机生成2-5中的一个数字
        var reg = /\d[2-5]/

(2) [\b] 匹配一个退格符
(3) \b 匹配一个单词的边界
(4)\B 匹配一个单词的非边界
(5)\cX 这儿,X是一个控制符,
(6) \D 匹配一个非字数字符,
(7)\n 匹配一个换行符
(8)\r 匹配一个回车符
(9)\s 匹配一个空白字符,包括\n,\r,\f,\t,\v等
(10)\S 匹配一个非空白字符,
(11)\t 匹配一个制表符
(12)\v 匹配一个重直制表符

下面我们通过一些例题来熟悉一下这些字符的用法
1、手机号码:首位为1并且第二位为3、5、6、7、8、9,写出相应的表达式

 var reg = /^1[3,5,6,7,8,9]\d{9}$/

2、昵称由英文、数字长度为6-10个字符

  var reg =   /[^a-zA-Z0-9]{6-10}$/

3、验证用户密码:正确格式为:以字母开头,长度在6-18之间,只能包含字符、数字和下划线。

    //   字符\w:匹配所有的数字和字母以及下划线,等价于[A-Za-z0-9_]。
        var reg = /^[a-zA-Z]\w{5,17}$/
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值