正则表达式中的边界符
边界符 | 说明 |
---|---|
^ | 表示匹配行首的文本(以谁开始) |
$ | 表示匹配行尾的文本(以谁结束) |
[] | 表示有一系列字符可供选择,只要匹配其中一个即可 |
[-] | 方括号内部 范围符号- |
[^] | 表示取反的意思 |
//只要包含 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)