web前端之JavaScript正则表达式

Posted 爸爸去哪了2之熊猫三胞胎

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了web前端之JavaScript正则表达式相关的知识,希望对你有一定的参考价值。

web前端之javascript正则表达式

后面有代码:

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

\\d 表示数字
\\d? ?表示0个或者一个
\\d+ +表示一个或者多个
\\d{3} 表示三个
\\d{3,5} 表示三到五个
\\d{3,} 表示至少出现3次
\\d* *表示0到任意个
\\b 表示单词边界
\\B 表示非单词边界
\\bis\\b 表示查找“ is ”的
. 表示任意字符
\\ 表示转译
http:(\\/\\/.+\\.jpg) 用()进行分组
$1 获取其内部东西

[]表示或
^表示开头
$表示结尾
g表示全局
\\d{4}[/-]\\d{2}[/-]\\d{2}
\\w 表示一个单词字符


字面量:var reg=/\\bis\\b/g;
构造函数:var reg=new RegExp('\\\\bis\\\\b','g');
修饰符:
g:global全文搜索;不添加,搜索到第一个匹配停止
i:ignore case忽略大小写,不添加,大小写敏感
m:multiple lines多行搜索

子符类:'a1b1c1d3f3'.replace(/[abc]/g,'X')
字符类取反:'a1b1c1d3f3'.replace(/[^abc]/g,'X')
范围类:'a1b1c1d1f1e1asd'.replace(/[a-z]/g,'Q');
很多个范围类:'a1b1c1d1f1e1asdABGS123BGJS'.replace(/[a-zA-Z]/g,'Q');
在选择多个范围类的时候需要匹配“-”,那就在最后添加“-”就可以了:'2010-07-08'.replace(/[0-9-]/g,'A');

预定类:匹配一个 ab+数字+任意字符  的字符串:ab\\d.

边界:'This is a boy'.replace(/\\Bis\\b/g,'0')
@开始:'@123@abc@'.replace(/^@./g,'Q')
@结束:'@123@abc@'.replace(/.@$/g,'Q')
多行匹配:
'@123
@456
@789'.replace(/^@\\d/gm,'X')

量词:
\\d 表示数字
\\d? ?表示0个或者一个
\\d+ +表示一个或者多个
\\d{3} 表示三个
\\d{3,5} 表示三到五个
\\d{3,} 表示至少出现3次
\\d* *表示0到任意个


正则表达式贪婪模式:
'12345678'.replace(/\\d{3,6}/g,"A");

非贪婪模式(后面加一个“?”就可以了):
'123456789'.match(/\\d{3,5}?/g)

分组:
'a1b1c1d1'.replace(/[a-z]\\d{3}/g,"X")
"a1b1c1d1"
'a1b1c1d1'.replace(/([a-z]\\d){3}/g,"X")
"Xd1"

或:
'AbcdEf'.replace(/Abcd|Ef/g,'X');
"XX"
'AbcdEfAbabEf'.replace(/Ab(cd|ab)Ef/g,'X');
"XX"

反向引用:
'2016-12-21'.replace(/(\\d{4})-(\\d{2})-(\\d{2})/g,'$2-$3-$1')
"12-21-2016"

前瞻(前面一个单词字符后面一个数字):
'a2*3'.replace(/\\w(?=\\d)/g,'X')
"X2*3"
'a2*34V8'.replace(/\\w(?=\\d)/g,'X')
"X2*X4X8"
'a2*34VV'.replace(/\\w(?=\\d)/g,'X')
"X2*X4VV"
'a2*34VV'.replace(/\\w(?!\\d)/g,'X')
"aX*3XXX"

对象属性:
g:global全文搜索;不添加,搜索到第一个匹配停止
i:ignore case忽略大小写,不添加,大小写敏感
m:multiple lines多行搜索
lastIndex:是当前表达式匹配内容的最后一个字符的下一个位置
source:正则表达式的文本字符串


test方法:
var reg1=/\\w/;
var reg2=/\\w/g;
reg1.test('a');
true
reg1.test('$');
false
reg2.test('a');
true
reg2.test('a');
false
reg2.test('a');
true
reg2.test('a');
false
while(reg2.test('ab')){
    console.log(reg2.lastIndex);
}

exec方法:
非全局调用:
var reg3=/\\d(\\w)\\d/;
var reg4=/\\d(\\w)\\d/g;
var ts='1a2b3c4d5e';
var ret=reg3.exec(ts);
console.log(reg3.lastIndex + '\\t' +ret.index+ '\\t' + ret.toString());
console.log(reg3.lastIndex + '\\t' +ret.index+ '\\t' + ret.toString());
while(ret=reg4.exec(ts)){
    console.log(reg4.lastIndex + '\\t' +ret.index+ '\\t' + ret.toString());
}
0   0   1a2,a
0   0   1a2,a
3   0   1a2,a
7   4   3c4,c

非全局下lastIndex不生效
toString()):第一个正则获取的字段,第二个正则中的分组的字段


全局下:
第一个数:第一次获取到之后的,下一个字符的位置
第二个数:从第几个字符后获取到和正则匹配的
第三个数:第一个正则获取的字段,第二个正则中的分组的字段


字符串对象方法:
var reg3=/\\d(\\w)\\d/;
var reg4=/\\d(\\w)\\d/g;
var ts='1a2b3c4d5e';
var ret=ts.match(reg3);
console.log(ret);
console.log(ret.lastIndex + '\\t' +ret.index+ '\\t');
ret=ts.match(reg4);
var ret=ts.match(reg4);
console.log(ret);
console.log(ret.lastIndex + '\\t' +ret.index+ '\\t');

'a1b2c3d4'.split(/\\d/g)

以上是关于web前端之JavaScript正则表达式的主要内容,如果未能解决你的问题,请参考以下文章

web前端开发JQuery常用实例代码片段(50个)

markdown Snippets.md是我最常用的HTML,CSS和JavaScript代码片段,用于前端Web开发

攻破难啃的骨头-正则表达式(转)

正则表达式之邮箱验证javascript代码

Python自动化开发学习18-Web前端补充内容

12个前端工程师经常用到的javascript正则表达式