正则表达式使用详细讲解(附带示例及运行效果)

正则表达式中的边界符

边界符说明
^表示匹配行首的文本(以谁开始)
$表示匹配行尾的文本(以谁结束)
[]表示有一系列字符可供选择,只要匹配其中一个即可
[-]方括号内部 范围符号-
[^]表示取反的意思
//只要包含 abc 就可以
let reg = /abc/
console.log(reg.test('abc')) //true
console.log(reg.test('abcd')) //true
//必须以 abc 开头
let reg = /^abc/
console.log(reg.test('abc')) //true
console.log(reg.test('abcd')) //true
console.log(reg.test('cbad')) //false
//只能是 abc
let reg = /^abc$/
console.log(reg.test('abc')) //true
console.log(reg.test('abcd')) //false
 //包含里面的任何一个字符都返回true
let reg = /[abc]/
console.log(reg.test('andy')) //true
console.log(reg.test('baby')) //true
console.log(reg.test('red')) //false
//三选一: 只能是a 或者b 或者c 这三个字母才返回 true
let reg = /^[abc]$/
console.log(reg.test('b')) //true
console.log(reg.test('abc')) //false
console.log(reg.test('andy')) //false
//如果中括号里面有 ^ 表示取反的意思
let reg = /^[^a-zA-Z0-9_-]$/
console.log(reg.test('a')) //false
console.log(reg.test('y')) //false
console.log(reg.test('A')) //false
console.log(reg.test('!')) //true
量词说明
*重复零次或更多次
+重复一次或更多次
?重复零次或一次
{n}重复n次
{n,}重复n次或更多次
{n,m}重复n到m次

*:重复零次或更多次

let reg = /^a*$/
console.log(reg.test(''))	//true
console.log(reg.test('a'))	//true
console.log(reg.test('aa'))	//true
console.log(reg.test('abc'))//false

+:重复一次或更多次

let reg = /^a+$/
console.log(reg.test(''))	//false
console.log(reg.test('a'))	//true
console.log(reg.test('aaa'))	//true
console.log(reg.test('abc'))	//false

?:重复零次或一次

let reg = /^a?$/
console.log(reg.test(''))	//true
console.log(reg.test('a'))	//true
console.log(reg.test('aa'))	//false
console.log(reg.test('aba'))//false

{n}:重复n次

let reg = /^a{3}$/
console.log(reg.test(''));		//false
console.log(reg.test('a'));		//false
console.log(reg.test('aaa'));	//true
console.log(reg.test('aaaa'));	//false

{n,}:重复n次或更多次

let reg = /^a{3,}$/
console.log(reg.test(''))			//false
console.log(reg.test('a'))			//false
console.log(reg.test('aaa'))		//true
console.log(reg.test('aaaa'))		//true

{n,m}:重复n到m次

let reg = /^a{3,6}$/
console.log(reg.test(''))			//false
console.log(reg.test('a'))			//false
console.log(reg.test('aaa'))		//true
console.log(reg.test('aaaaaa'))		//true
console.log(reg.test('aaaaaaa'))	//false

量词重复出现

//这个模式用户只能输入英文字母 数字 下划线 短横线 且 6- 16位
let reg = /^[a-zA-Z0-9_-]{6,16}$/
console.log(reg.test('aA0_-'))	//false
console.log(reg.test('aA0_-a'))	//true
console.log(reg.test('aA0_-a0123456789'))	//true
console.log(reg.test('aA0_-a01234567890'))	//false
预定类说明
\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]

\d:匹配0-9之间的任一数字,相当于[0-9]

let reg = /^\d{1,5}/
console.log(reg.test(''))
console.log(reg.test('1'))
console.log(reg.test('12345'))
console.log(reg.test('123456'))
console.log(reg.test('a123'))

\D:匹配所有0-9以外的字符,相当于[^0-9]

let reg = /^\D{1,5}/
console.log(reg.test(''))	//false
console.log(reg.test('1'))	//false
console.log(reg.test('a'))	//true
console.log(reg.test('_'))	//true
console.log(reg.test('abcdef'))	//true
console.log(reg.test('abcdefg'))	//false

\w:匹配任意的字符、数字和下划线,相当于[a-zA-Z0-9_]

let reg = /^\w{1,5}/
console.log(reg.test(''))	//false
console.log(reg.test('1'))	//true
console.log(reg.test('a'))	//true
console.log(reg.test('_'))	//true
console.log(reg.test('A'))	//true
console.log(reg.test('aA123'))	//true

\W:匹配除所有字母、数字和下划线以外的字符,相当于[^a-zA-Z0-9_]

let reg = /^\W{1,5}/
console.log(reg.test(''))	//false
console.log(reg.test('!'))	//true
console.log(reg.test('a'))	//false
console.log(reg.test('A'))	//false
console.log(reg.test('1'))	//false

\s:匹配空格(包括换行符、制表符、空格符等),相当于 [\t\r\n\v\f]

let reg = /^\s{1,5}$/
console.log(reg.test(' ')) //true
console.log(reg.test('hi')) //false

\S:匹配非空格(包括换行符、制表符、空格符等)字符,相当于 [^\t\r\n\v\f]

let reg = /^\s{1,5}$/
console.log(reg.test(' ')) //false
console.log(reg.test('hi')) //true

字符串替换

replace() 方法可以实现替换字符串操作,用来替换的参数可以是一个字符串或者一个正则表达式

//第一个参数:被替换的字符串或者正则表达式
//第二个参数:替换为的字符串
//返回值是一个替换完毕的新字符串
stringObject.replace(regexp/substr,replacement)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值