常用函数
了解正则之前,有几个函数一定要知道。
字符串对象方法:
1、search 查找字符串中是否含有某一个字符串,并返回其所在的位置。
2、match 返回一个字符数组,数组里面放的是符合查询条件的所有字符串。
3、replace 替换指定字符或字符串。
4、splite 字符串切割函数。
以上,四个方法皆为JS字符串对象所自带的函数方法,参数可以传string类型,也可以传正则。
正则对象方法
1、test 返回值为boolean类型,参数传一个字符串。如果符合正则筛选条件,则返回true;否则,返回false。比如:
let re = /^1\d+$/g;//开头为1的数字字符串
console.log(re.test('1000'));//ture
console.log(re.test('2000'));//false
console.log(re.test('1abcd00'));//false
console.log(re.test('100abd'));//false
基本概念
定界符
双斜杠,即代码里面的注释斜杠。只不过,我们写正则的时候,把内容写在双斜杠中间。比如:
//查找字符串中的数字
let re = /^1\d+$/g;//开头为1的数字字符串 此处的g先暂不做解释
参数
常用的有两个:
i,忽略大小写;g,贪婪匹配,全局去匹配。使用时,写在定界符的末尾。
比如:查找字符串中的所有大小写字母a
let str = 'asdfasfAAAdasfsd5646dasfas';
let re = /a+/ig;
console.log(str.match(re));
量词
1、+加号
加号是一个量词,表示[1,n),至少一个,最多可以有n个。
2、?问号
表示最多只有一个或者没有。
3、{}大括号
有三种使用形式:
{n},有n个。比如/a{6}/表示匹配6个连一起的字符a。
{n, m},有n~m个。比如/\d{5, 12}/表示匹配5到12个连续的数字。
{n,},至少n个,多了不限。比如/\d{5}/表示匹配5个及其以上连续的数字。
补充:
其实,量词+(加号)就是{1,}的简写;量词?(问号)就是{0,1}的简写。
修饰符
^,行首。比如:匹配一个数字开头的字符串
let re = /^\d\w+/ig;
$,行位。比如:匹配一个数字结尾的字符串
let re = /\d$/ig;
补充:这两个修饰符需要灵活使用或者配合一起使用,来达到需要的效果。
元字符
元字符用中括号[]表示,主要有以下3种使用形式:
1、表示任何一个
let re = /a[abc]q/;
//上面这个正则可以匹配:aaq、abq、acq这三种字符。
2、范围
//匹配一个数字
let re = /[0-9]/;
//匹配一个字字母
let re = /[a-z]/i;
如果不加量词修饰,那么一个中括号,只表示匹配一个字符,只不过这个字符,需要在这个范围内。
3、排除
//匹配一个不是数字的字符
let re = /[^0-9]/;
转义符
\d 表示数字0~9,相当于[0-9]
\w 表示字母、数字、下划线,相当于[a-z0-9_]
\s 表示空白字符,比如空格和tab键敲出来的空白
. 表示任意字符
\D 相当于 [^0-9]
\W 相当于[^a-z0-9_]
\S 非空白
备注:
正则这一块的东西和使用组合太多了,我这边只是简单列取了一些基本概念和常见的使用形式。让自己以后在看别人写的正则语法时,不至于什么都看不懂。
至此,完毕。