复习正则

正则这个东西,说经常使用也不经常使用,用到的时候百度一波也够了。早以前对正则还算熟悉,到了后来几乎忘光了。今天从新学一下简单的正则。vue

正则主要是用来匹配某一个规则的字符串,能够提取和判断。好比最经常使用的邮箱、电话号码的正则,好比去除先后空格的正则。webpack

JavaScript有一个正则构造函数RegExp,接收两个参数:web

new RegExp(pattern, attributes);正则表达式

pattern表示匹配的规则,attributes是可选的,包含属性 "g"、"i" 和 "m":函数

i表示不区分大小写:.net

var reg = new RegExp('a');cdn

console.log(reg.test('abc'));//true对象

console.log(reg.test('Abc'));//falseip

var reg = new RegExp('a', 'i');文档

console.log(reg.test('abc'));//true

console.log(reg.test('Abc'));//true

g表示全局匹配,会全局匹配,而不是找到第一个就返回:

var reg = new RegExp('a');

console.log('abca'.replace(reg, 'd'));//dbca

var reg = new RegExp('a', 'g');

console.log('abca'.replace(reg, 'd'));//dbcd

m这个几乎不常见,表示多行匹配,做用是修改^的做用。默认状态下,一个字符串只有一个开头^和一个结尾,若是采用多行匹配,那么每个行都有一个^合$:

var reg = new RegExp('^a');

console.log(reg.test('bc\nabc'));//false

var reg = new RegExp('^a', 'm');

console.log(reg.test('bc\nabc'));//true

var reg = new RegExp('a$');

console.log(reg.test('bca\nbc'));//false

var reg = new RegExp('a$', 'm');

console.log(reg.test('bca\nbc'));//true

正则表达式有两种建立语法:

建立对象法:

var reg = new RegExp();

直接量语法:

var reg = //;

两种方法的使用和格式没有什么区别,直接量法会更简便。

好比匹配1开头,第二位是2-9,总共11位:

var reg = /^1[2-9]{1}[0-9]{9}/g

console.log(reg.test(15555555555));//true

方括号[]表示集合,大括号{}表示个数。g全局匹配可选。

[0-9]表示0到9

[a-z]表示小写的字母a到z

[A-Z]表示大写的A到Z

[A-z]表示a到z的全部大小写

[abc]方括号里面的任意一个字符

[^a]除了方括号内的字符其余的任意字符

在方括号内还能使用&|

元字符:

正则里面有不少元字符,好比\d表示全部的数字,\S表示全部的非空格字符,\n表示换行符,\r表示回车符等等。

量词:

大于5个var reg = /[0-9]5+/

等于5个var reg = /[0-9]{5}/

5到9个var reg = /[0-9]{}{5,,9}/

量词还有不少,这只是最简单的几个。

属性:

global:是否有全局标志g

IgnoreCase:是否有标志i

Multiline:是否有标志m

lastIndex:整数,开始匹配字符位置

Source:表达式源文本

方法:

正则对象上只有三个方法,咱们通常只用test,返回true或false,表示是否符合表达式的规则。

特殊字符:

好比^和$表示开头和结尾,想要使用就要转义^和$。好比咱们webpack配置loader,以.vue结尾:/.vue/,就须要把.转义。特殊字符也有好几个。

正则还有很重要的做用就是支持正则的string对象的方法:

Search、match、replace、split。

好比经常使用的去除空格:

var reg = /\s/g

console.log('a b c d '.replace(reg, '-'));//a-b-c-d-

其实正则最主要就是知道匹配模式igm,限制个数的量词{},集合的方括号[],开头^和结尾$知道了这几个就能写出不少简单的正则。至于其余的特殊字符、元字符等有想要了解的能够看看文档。

相关文章
相关标签/搜索