正则表达式

本文介绍了正则表达式的基本语法,包括定义、测试字符串匹配的方法如test()和exec()。详细讲解了特殊字符如边界符(^,$),字符类([])以及量词的概念,并给出了常用正则表达式示例,如数字、字母、邮箱、URL和电话号码的验证规则。
摘要由CSDN通过智能技术生成

正则表达式

1. 语法

1.1 定义正则表达式语法:

let 变量名 = /表达式/

其中/ /是正则表达式字面量

1.2 判断是否有符合规则的字符串:

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

// 定义正则表达式 reg里面存的是对象
let reg = /测试/
let str = '这是一个测试样例'
let str2 = '这是一个样例'
console.log(reg.test(str)) // true
console.log(reg.test(str)) // false

1.3 检测(查找)符合规则的字符串:

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

// 定义正则表达式 reg里面存的是对象
let reg = /测试/
let str = '这是一个测试样例'
let str2 = '这是一个样例'
// console.log(reg.test(str))
console.log(reg.exec(str)) // true 4
console.log(reg.exec(str2)) // false

返回的是数组,以及对应的下标

2. 特殊字符

2.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

2.2 [ ]

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

// [] 表示有一系列字符可以供我们选择,只要匹配其中一个就可以了
// /[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

2.3 -

正则表达式中,[-] 表示范围,比如/1$/,表示英文字母中的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

2.4 ( )

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

// 表示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

2.5 量词

常用量词{m,n}等价形式说明
*{0,}可能出现,也可能不出现,出现次数没有上限
+{1,}至少出现1次,出现次数没有上限
?{0,1}至多出现1次,也可能不出现
{n}重复n次
{n,}重复n次或更多次
{n,m}重复n到m次

2.6 字符类

预定类:指的是某些常见模式的简写方式

预定类说明
\d匹配0-9之间的任意数字,相当于【0-9】
\D匹配0-9以外的字符,相当于【^0-9】
\w匹配任意的字母、数字和下划线,相当于【A-Za-z0-9】
\W除所有字母、数字、下划线以外的字符,相当于【^A-Za-z0-9】
\s匹配空格(包括换行符、制表符、空格符等),相当于【\t\r\n\v\f】
\S匹配非空格的字符,相当于【^\t\r\n\v\f】

3. 常用正则表达式

整数或者小数

^[0-9]+\.{0,1}[0-9]{0,2}$ 

只能输入数字

^[0-9]*$

只能输入由26个英文字母组成的字符串

^[A-Za-z]+$

只能输入汉字

^[\u4e00-\u9fa5]{0,}$ 

验证Email地址

^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$

验证Internet URL

^[http|https]://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$

验证电话号码

^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$

  1. a-z ↩︎

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值