正则表达式
正则表达式
正则表达式:
正则表达式,是能够表示一定规则的表达式 –>
作用:
表单验证.....
创建一个正则表达式:
用构造函数RegExp的方法创建一个正则表达式圆括号内有两个值
var box = new RegExp(正则内容,修正符);
在圆括号内正则内容和修正符都要加引号
第二种字面量创建:
var box2 = /正则内容/修正符;
正则表达式的使用方法:
RegExp方法:
正则对象.test||exec(字符串)
test 执行字符串匹配搜索, 返回true或false
exec 执行字符串匹配搜索,返回结果数组若没有相关信息返回null
若查找到结果,则可以用数组方法访问查找到的元素
也可以用.index方法访问查找到第一个的位置,
也可以用.input方法访问被查找的字符串。
string 方法:
字符串.方法名(正则对象)
match 返回正则内容匹配到的子串
此方法,会获取到要匹配的子串,返回一个数组,
此方法若不开全局跟exec一样。
例如:
var str ='Hello world! Hello world! Hello world! Hello world!';//这个就是要去匹配的内容
var box2=/world/ig; //正则规则和修正符
//使用字符串方法 match方法去匹配需要配的字符串,并返回出结果
var box3= str.match(box2); //匹配到["world", "world", "world", "world"]
console.log(box3);
search 返回正则内容匹配到的子串的起始位置(下标),全局g在这不起作用
若没找到,返回-1。
例子:
varbox3 =str.search(box2);
replace 用来替换匹配到的正则规则内的内容,并返回出匹配的字符串,(正则规则,‘这里是要替换东西,此处要引号,若引号内为空,则删除掉替换的东西’)
例子:
var str = 'Hello World! Hello world! Hello world! Hello world!';//这个就是要去匹配的内容
var box2 = /world/ig; //正则规则和修正符
var box3 = str.replace(box2,'box');
//Hello box! Hello box! Hello box! Hello box!
console.log(box3);
split 用来拆分字符串,按照正则匹配到的东西来拆分
例子:
var str = 'Hello World!@Hello world! Hello world! Hello world!';//这个就是要去匹配的内容
var box2 = /##/ig; //正则规则和修正符
//用来分割字符串
//此例子,是将空格拆分组成数组
var box3 = str.split(box2);//["Hello", "World!@Hello", "world!", "Hello", "world!", "Hello", "world!"]
console.log(box3);
正则内容修正符:
i 忽略大小写
g 全局匹配
m 多行匹配
空白字符:
\n 换行符
\r 回车符
\b 空格符
元字符:
\ 转义符
. 匹配除 "\n" 之外的任何单个字符。
* 匹配0个或多个位数星号前面的字符
[] 匹配一个字符集合,中括号内是一个集合,但是这个只占一位,括号内可以放任何东西
[^a-z0-9] 表示给括号内的内容取非值
^ 表示字符串开始的位置必须是^后面的一个字符
$ 表示字符串结束位置必须是$前面的一个字符
+ 匹配前面的一个字符一次或多次
? 匹配前面的一个字符零次或1次
{n} 匹配前面的一个字符出现的次数,n表示次数
{n,} 匹配前面的一个字符出现至少多少次
{n,m} 匹配前面的一个字符出现的次数,n表示最小次数,m表示最大次数,m,n取值为非负整数
x|y 匹配x或y
() 1.改变优先级,一般配合|使用
2.将()内的内容,存储到数组中------exec使用---捕获分组
若不要捕获的内容,(?:)在圆括号的开始位置加上?:
3.()方式称为单元方式
//下面为前瞻捕获捕获
var str = 'google';
var box = /(goo(?=gle))/; 捕获的结果为goo,但是匹配规则是google
原子:
\d 表示数字0-9等价于 [0-9]
\D 表示除了0-9以外的字符,等价于[^0-9]
\s 表示匹配任何空白字符,包括空格、制表符、换页符等等。等价于[\f\n\r\t\v]
\S 匹配任何非空白字符。等价于[^\f\n\r\t\v]
\w 匹配包括下划线的任何单词字符。等价于'[A-Za-z0-9_]'。
\W 匹配任何非单词字符。等价于 '[^A-Za-z0-9_]'。
贪婪 |
非惰性 |
+ |
+? |
? |
?? |
* |
*? |
{n,} |
{n,}? |
{n,m} |
{n,m}? |
Ps:个人的一点学习笔记,如有不足或错误请指出,一定及时纠正。