JS:正则表达式中的特殊字符(边界符、[]、-、())

一个正则表达式可以由简单字符构成,比如/abc/或/123/,也可以是简单和特殊字符的组合,比如/ab*c/或/^abc/。其中,特殊字符也被称为元字符,在正则表达式中具有特殊意义的专用符号,如:^,$,+等。

1.边界符

边界符说明
^表示匹配行首的文本(以谁开头)
$表示匹配行尾的文本(以谁结束)

简单代码示例:

// 正则表达式中//内不需要加引号,不管是字符型还是数字型
// ^abc表示要以abc开头
var reg = /^abc/;
console.log(reg.test("abc")); // true
console.log(reg.test("1abc")); // false
console.log(reg.test("a")); // false

// ^abc$表示文本中必须只有abc,且只能有一组abc,以abc开头又以abc结束
var reg2 = /^abc$/;
console.log(reg2.test("abc")); // true
console.log(reg2.test("abcabc")); // false
console.log(reg2.test("abcc")); // false

正则表达式中的:[],表示有一系列字符可以供我们选择,只要匹配其中一个就可以了,也就是多选一。

代码示例:

// [] 表示有一系列字符可以供我们选择,只要匹配其中一个就可以了
// /[abc]/ 意思是,只要文本中包含a或b或c都会返回true
var reg = /[abc]/;
console.log(reg.test("apple")); // true
console.log(reg.test("yellow")); // false
console.log(reg.test("color")); // true

 // 只有a或b或c这三个字母中的其中一个才会返回true
 var reg2 = /^[abc]$/;
 console.log(reg2.test("apple")); // false
 console.log(reg2.test("a")); // true
 console.log(reg2.test("b")); // true
 console.log(reg2.test("c")); // true
 console.log(reg2.test("bb")); // false

正则表达式中,[-] 表示范围,比如/^[a-z]$/,表示英文字母中的a-z任意一个字符都会返回true

代码示例:

// 表示英文字母中的a-z任意一个字符都会返回true,同理/^[0-9]$/表示,0-9任意一个数字返回true
var reg = /^[a-z]$/;
console.log(reg.test("b")); // true
console.log(reg.test("z")); // true
console.log(reg.test("ab")); // false
console.log(reg.test("1")); // false

正则表达式中,()表示优先级,和数学中的()意义一样

代码示例:

       // 表示abc重复3次
       var reg = /^(abc){3}$/;
       console.log(reg.test("abcabcabc")); // true
       console.log(reg.test("abccc")); // false

       // 表示c重复3次
       var reg = /^abc{3}$/;
       console.log(reg.test("abcabcabc")); // false
       console.log(reg.test("abccc")); // true

注意:

如果中括号[]里有^,表示的是取反的意思,比如/[^a-z]/,意思是不能包含a-z,而如果写到中括号[]外面才是边界符^,比如/^[a-z]/,表示以a-z任意一个字母开头,千万不能混淆。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值