正则作为工作中的常用工具,下文对其进行归纳整理。
正则相关介绍
- 正则表达式其实也是js里面的一个对象RegExp
- 创建正则对象 new RegExp("a")
- 创建正则对象(对象字面量) let reg = /xxx/
- 其中//是标记,a表示要匹配的字符
正则表达式的匹配字符
let reg = /a/ // 匹配字符串中的a字符
let reg2 = /abc/ // 匹配字符串中的‘abc’
reg2.test('ab1c') // false
reg2.test("1abc") //true
reg2.test("abc123") //true
reg2.test("abcabc") //true
正则表达式中特殊字符的意义和用法
- . 表示除了换行符(\r \n)以外的任意字符
var reg = /./
reg.test('a') // true
reg.test('.') // true
reg.test('\r') // false
reg.test('12\r12') // true
reg.test(' ') // true
- \d 表示数字
var reg = /\d/
reg.test('12a12') // true
reg.test('abc') // false
var reg2 = /\d\d/
reg.test('12) // true
reg.test('1c') // false
- \D 是\d的取反结果,表示不是数字
var reg = /\D/
reg.test('123') // false
reg.test('12a12') // true
reg.test('abc') // true
var reg2 = /12\D4/
reg.test('1234') // false
reg.test('12a4') // true
- \w 表示字母、数组、下划线。三者满足其一即可
var reg = /\w/
reg.test("a") //true
reg.test("1") //true
reg.test("_") //true
reg.test(' ') //false
reg.test('') //false
- \W 是\w的取反,除了字母、数组、下划线以外的任何字符
var reg = /\W/
reg.test("a") //false
reg.test("1") //false
reg.test("_") //false
reg.test(' ') //true
reg.test('') //false
- \s 表示一个空白字符(包括\r\n\t等空格)
var reg=/\s/;
reg.test("abc def") //true
reg.test("abc\r123") //true
reg.test("abc") //false
\S 是\s的取反,表示除了空白字符以外的任何字符
\ 表示转义字符
var reg=/./; //匹配除了换行符以外的任意字符
var reg=/\./; //匹配.字符
var reg=/\//; //匹配一个正斜杠:/
var reg=/\[\]/; //匹配[]
- [abc] 表示字符集合 匹配abc中的任何一个
var reg=/[1a2b3]/; //
reg.test("a") //结果为:true
reg.test("3") //结果为:true
reg.test("fg5678") // false
reg.test("a999999") // true
var reg2=/[123][abc]/
reg2.test("2a"); //true
reg2.test("3c"); //true
reg2.test("asdfasdf1c"); // true
- [^abc] 表示不能是abc中的任何一个
正则边界
- ^ 表示字符串最左边
var reg=/^abc/; //表示以abc开头
reg.test("123abc123"); // false
reg.test("abc123"); // true
- $ 表示字符串最右边
var reg=/abc$/ //表示以abc结尾
reg.test("123abc") // true
reg.test("abc123") // false
var reg=/^abc$/ //表示匹配‘abc’(以abc开头并且以abc结尾)
reg.test("abc") // true
reg.test("abc123") // false
正则量词
-
*
出现0次或者多次
var reg=/\d*/ // 表示要0个或者多个数字
reg.test("123") //true
reg.test("abc") //true
var reg3=/1\d*/
reg3.test("123"); //true
reg3.test("a23") //false
reg3.test("a1b"); //true
-
+
出现1次或者多次 -
?
出现0次或者1次 -
{3}
出现3次 -
{3,}
至少出现3次 -
{3,5}
出现3到5次 -
|
或者
var reg=/abc|123/ //表示匹配abc或者123
-
()
分组
var reg=/(\d{3,4})-(\d{7,8})/ //true
reg.test('021-33335555') // true
reg.test('a021-33335555w') // true
reg.test('a01-33335555') // false
正则表达式修饰符
-
/i
忽略大小写 -
/g
全文查找出现的所有匹配字符 -
/ig
全文查找、忽略大小写 -
/gi
全文查找、忽略大小写