JavaScript的正则表达式(一)
来源:互联网 发布:caffe model zoo 编辑:程序博客网 时间:2024/05/22 07:52
字符串的复习
indexOf 查找
substring 获取子字符串
charAt 获取某一个字符
split 拆分数组
正则:也就是规则 让计算机读懂人类的规则
正则是针对字符串的
正则写法
var re = /a/
var re = new RegExp('a');
test:正则去匹配字符串,如果匹配成功就返回真,如果匹配失败就返回假
test的写法:正则.test(字符串)
转义字符:alert(a\nb) //a和b换行
n \n 换行
r \r 制表
t \t 回车
\s :空格
\S :非空格
\d :数字
\D :非数字
\w :字符(字母、数字、下划线_)
\W :非字符
search:正则去匹配字符串,如果匹配成功,就返回匹配成功的位置,如果匹配失败就返回-1
search的写法:字符串.search(正则)
正则中的默认:是区分大小写的
如果不区分大小写,在正则的最后加标识 i
var str = '123s25d3f53';
var re = /S/i; var re = new RegExp('B',i);
alert(str.search(re));
match:正则去匹配字符串,如果匹配成功就返回匹配成功的数组,如果匹配不成功,就返回null
match的写法:字符串.match(正则);
正则默认:正则匹配成功就会结束,不会继续匹配
如果想全部查找,就要加标识g(全局匹配)
量词:匹配不确定的位置
+:至少出现一次
var str = "1s2f1114ss25frwe";//var re = /\d/ //[1];//var re = /\d/g //[1,2,1,1,1,4,2,5];//var re = /\d\d/g //[11,14,25];//var re = /\d\d\d/g //[111];//var re = /\d+/g; //[1,2,1114,25]alert(str.match(re));
replace: 正则去匹配字符串,匹配成功的字符去替换新的字符串
replace的写法:字符串.replace(正则,新的字符串)
var str = "c2sdcc";//var re = /c/; //d2sdcc//var re = /c/g //d2sddd//var re = /c+/g //d2sddalert(str.replace(re,"d"));
正则中 | :或的意思
replace:可以是字符串,也还可以是一个回调函数
下面的案例就是过滤敏感词
var oBtn = document.getElementById('btn');var aText = document.getElementsByTagName('textarea');oBtn.onclick = function(){var re = /明白|厉害|智商/g;aText[1].value = aText[0].value.replace(re,function(str){//回调函数中 第一个参数代表母亲,第二个参数代表第一个孩子,第三个参数代表第二个孩子,以此类推var str = 'abc'var re = /(a)(b)(c)/alert(str.match(re)); //abc,a,b,c (当match不加的时候才可以获取到子项的集合)var str = 'abc'var re = /(a)(b)(c)/alert(str.match(re)); //abc,a,b,c (当match不加的时候才可以获取到子项的集合)var str2 = "";console.log(str);for(var i=0;i<str.length;i++){str2 += '*';}return str2;})}
匹配子项:小括号()(还有另外一个意思,分组操作)把正则的整体叫做(母亲)
然后把左边第一个小括号里面的正则,叫做这个第一个子项
第二个小括号就是这个正则的第二个孩子
var str = "2017-07-11";//情况一// var re = /\d+-/g// str.replace(re,function(a){// alert(a); //2017- 07-// })//情况二// var re = /\d-+/g // str.replace(re,function(a){// alert(a); //7- 7-// })//情况三// var re = /(\d-)+/g;// str.replace(re,function(a){// alert(a); //7- 7- // })//情况四// var re = /(\d+)(-)/g;// str.replace(re,function(a){// alert(a); //2017- 07- // })var str = 'abc'var re = /(a)(b)(c)/alert(str.match(re)); //abc,a,b,c (当match不加的时候才可以获取到子项的集合)
- JavaScript的正则表达式(一)
- javascript(一)-正则表达式
- javascript正则表达式<一>
- JavaScript正则表达式(一)简介
- javascript正则表达式之小结(一)
- javascript之正则表达式(一)
- Javascript正则表达式学习(一)
- 详解JavaScript正则表达式(一)
- javascript之正则表达式(一)
- 初试JavaScript正则表达式<一>
- javascript正则表达式---(String)提供的正则表达式方法
- JavaScript 的正则表达式
- JAVASCRIPT的正则表达式
- javascript的正则表达式
- javascript的正则表达式
- javascript的正则表达式
- JavaScript的正则表达式
- JavaScript的正则表达式
- 守护进程
- HashMap与ConcurrentHashMap的区别
- easyui环境搭建
- 卸载CentOS7-x64自带的OpenJDK并安装Sun的JDK7的方法
- Kotlin学习之-5.13 代理属性
- JavaScript的正则表达式(一)
- 711(2)
- 6/23作业:类之间关系
- r语言神经网络
- LA 3905 Meteor [扫描线]
- Hadoop 集群搭建之一 CentOS7 安装
- 利用StringBuffer读写文件实例
- EA&UML日拱一卒-活动图::SendSignalAction
- DBA扁鹊