正则
1.正则符
代码 | 含义 |
---|---|
[0-9] | 匹配一个0-9的数值 |
\d | 匹配一个0-9的数值 |
\D | 匹配一个除了0-9的数值 |
[^0-9] | 匹配一个除了0-9的数值 |
\w | 匹配一个0-9 a-z A-Z的数值 |
[0-9a-zA-Z] | 匹配一个0-9 a-z A-Z的数值 |
\W | 匹配一个除了0-9 a-z A-Z的数值 |
[^0-9a-zA-Z] | 匹配一个除了0-9 a-z A-Z的数值 |
* | 0个以上 |
? | 0个或1个 |
. | 除了换行符_之外的所以字符 |
+ | 一个以上 |
[0-9]{n} | 匹配n个0-9的数值 |
[0-9]{n,} | 匹配n个或n个以上的0-9的数值 |
[0-9]{n,m} | 至少匹配n个最多匹配m个0-9的数值 |
^ [] | 以什么开始 |
[]& | 以什么结束 |
^ []& | 以什么开始,以什么结束 |
[^] | 除了什么,其他都可以 |
g | 全局匹配 |
i | 不区分大小写 |
/.*/ | 贪婪模式 |
/.*?/ | 非贪婪模式 |
() | 子表达式 |
2.正则符使用
var str = '15dsadFDS4sdFD'
//匹配一个数字
var patt = /[0-9]/
console.log(str.match(patt))//'1'
//全局匹配一个数字
var patt = /[0-9]/g
console.log(str.match(patt))//'1','5','4'
// 匹配一个字符
var patt = /[a-z]/
console.log(str.match(patt))//'d'
// 全局匹配一个字符
var patt = /[a-z]/g
console.log(str.match(patt))//'d','s','a','d','s','d'
// 不区分大小写全局匹配一个字符
var patt = /[a-z]/gi
console.log(str.match(patt))//'d','s','a','d','F','D','S','s','d','F','D'
// 匹配一个0-9一个a-z的字符
var patt = /([0-9])([a-z])/
console.log(str.match(patt))//'5d','5','d'
// 全局匹配一个0-9一个a-z的字符
var patt = /([0-9])([a-z])/g
console.log(str.match(patt))//'5d','4s'
// 全局匹配多个0-9一个a-z的字符
var patt = /([0-9]+)([a-z])/g
console.log(str.match(patt))//'15d','4s'
// 全局匹配一个0-9多个a-z的字符
var patt = /([0-9])([a-z]+)/g
console.log(str.match(patt))//'5dsad','4sd'
// 不区分大小写全局匹配一个0-9多个a-z的字符
var patt = /([0-9])([a-z]+)/gi
console.log(str.match(patt))//'5dsadFDs','4sdFD'
3.正则方法
- split()
此方法用于把一个字符串分割成字符串数组
传递一个正则表达式作为参数,使这个方法根据正则表达式进行拆分,不使用全局匹配依然全部拆分 - replace()
此方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串
参数1:被替换的内容
参数2:新内容
注意:如果不进行全局匹配只替换第一个 - search()
此方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串
var str = "1a2b3c4d5e6f7g"
var ret = str.split(/[a-z]/)
console.log(ret)//'1','2','3','3','4','5','6','7',''
var result = str.replace(/b|e/g,"☆")
console.log(result)//1a2☆3c4d5☆6f7g
var ret1 = str.search(/[3-7]/)
console.log(ret1)//4