美文网首页
克服正则的学习的恐惧症

克服正则的学习的恐惧症

作者: love2013 | 来源:发表于2016-10-08 23:52 被阅读18次

前端时间的自学的时候,怎么没吃透正则的用法,最近js有一定的提高,开始有时间补充漏洞的时候!

1.何为正则呢?

正则也叫规则,让计算机能识别人类的规则

2.正则的操作那些呢?---字符串的

3.正则的表达式:

var str=/正则表达式/;

var str=new RegExp("","");是字符串形式,当正则需要传参的时候,用正则的全称的写法

4.正则的常用的方法

test:正则去匹配字符串,如果匹配成果就返回时真true,反而时false

写法:正则.test(字符串);

例:

var str = 'abcdef';

var re = /b/;

alert( re.test(str) );*/---true;

/*\s : 空格

\S : 非空格

\d : 数字

\D : 非数字

\w : 字符  ( 字母 ,数字,下划线_ )

\W : 非字符*/

var str = '374829348791';

var re = /\D/;

if( re.test(str) ){

alert('不全是数字');

}

else{

alert('全是数字');

}

search : 正则去匹配字符串 , 如果匹配成功,就返回匹配成功的位置,如果匹配失败就返回 -1

search的写法 : 字符串.search(正则)

正则中的默认 : 是区分大小写的

如果不区分大小写的话,在正则的最后加标识 i

var str = 'abcdef';

var re = /B/i;

//var re = new RegExp('B','i');

alert( str.search(re) );

match : 正则去匹配字符串,如果匹配成功,就返回匹配成功的数组,如果匹配不成功,就返回null

match的写法 : 字符串.match(正则)

正则默认:正则匹配成功就会结束,不会继续匹配

如果想全部查找,就要加标识 g(全局匹配)

量词 : 匹配不确定的位置

+至少出现一次

var str = 'haj123sdk54hask33dkhalsd879';

var re = /\d+/g;

alert( str.match(re) );

replace : 正则去匹配字符串,匹配成功的字符去替换成新的字符串,replace : 第二个参数:可以是字符串,也可以是一个回调函数

replace的写法 : 字符串.replace(正则,新的字符串)

var str = 'aaa';

var re = /a+/g;

str = str.replace(re,'b');

alert(str);

| : 或的意思

敏感词过滤:

window.onload = function(){

var aT = document.getElementsByTagName('textarea');

var oInput = document.getElementById('input1');

var re = /菲称|中国船|监视之下/g;

oInput.onclick = function(){

//aT[1].value = aT[0].value.replace(re,'*');

aT[1].value = aT[0].value.replace(re,function(str){

//函数的第一个参数:就是匹配成功的字符

//alert( str );

var result = '';

for(var i=0;i

匹配子项 : 小括号 ()  (还有另外一个意思,分组操作)

把正则的整体叫做(母亲)

//然后把左边第一个小括号里面的正则,叫做这个第一个子项(母亲的第一个孩子)

//第二个小括号就是第二个孩子

例:

var str = '2013-6-7';

var re = /(\d+)(-)/g;

str = str.replace(re,function($0,$1,$2){

//第一个参数:$0(母亲),第二个参数 : $1(第一个孩子)

//,第二个参数 : $1(第二个孩子)

//alert( $2 );

//return $1 + '.';

return $0.substring(0,$0.length-1) + '.';

});

alert( str );  //2013.6.7

例2:

var str = 'abc';

var re = /(a)(b)(c)/;

alert( str.match(re) );  //[abc,a,b,c](当match不加g的时候才可以获取到子项的集合)

字符类 : 一组相似的元素  [] 中括号的整体代表一个字符

例:

var str = 'abdc';

var re = /a[bde]c/;

alert( re.test(str) );*/

排除 : ^ 如果^写在[]里面的话,就代表排除的意思

/*var str = 'abc';

var re = /a[^bde]c/;

alert( re.test(str) );*/

var str = 'abc';

var re = /a[a-z0-9A-Z]c/;

alert( re.test(str) );

获取class的方法

找重复项最多的字符和个数

var str = 'assssjdssskssalsssdkjsssdss';

var arr = str.split('');

str = arr.sort().join('');

//alert(str);

var value = '';

var index = 0;

var re = /(\w)\1+/g;

str.replace(re,function($0,$1){

//alert($0);

if(index<$0.length){

index = $0.length;

value = $1;

}

});

alert('最多的字符:'+value+',重复的次数:'+index);

//量词 : {}

/*{4,7}  : 最少出现4次,最多出现7次

{4,} : 最少出现4次

{4} : 正好出现4次

+ : {1,}  //\d{1,}

? : {0,1}  : 出现0次或者1次

* : {0,}  : 至少出现0次*/

常用的正则表达式

高级表单校验

匹配中文:[\u4e00-\u9fa5]

行首行尾空格:^\s*|\s*$

Email:^\w+@[a-z0-9]+(\.[a-z]+){1,3}$

网址:[a-zA-z]+://[^\s]*

QQ号:[1-9][0-9]{4,9}

邮政编码:[1-9]\d{5}

身份证:[1-9]\d{14}|[1-9]\d{17}|[1-9]\d{16}x

把方法包在一个空间里

有人管他叫——命名空间

在公司里,把同一类方法,包在一起

JSON的使用

把之前的方法,包在一起

总结:

1 . 修饰词

i  :匹配时忽略大小写

g : 匹配时全局匹配,查找所有匹配项,而非查找到一个既停止

2 . 匹配模式

方括号

---方括号用于查找某个范围内的字符:

表达式描述

[abc]查找方括号之间的任何字符。

[^abc]查找任何不在方括号之间的字符。

[0-9]查找任何从 0 至 9 的数字。

[a-z]查找任何从小写 a 到小写 z 的字符。

[A-Z]查找任何从大写 A 到大写 Z 的字符。

[A-z]查找任何从大写 A 到小写 z 的字符。

[adgk]查找给定集合内的任何字符。

[^adgk]查找给定集合外的任何字符。

(red&|blue&|green)    查找任何指定的选项。

转义字符

---转义字符Metacharacter)是拥有特殊含义的字符:

.查找单个字符,除了换行和行结束符。

\w查找单词字符。

\W查找非单词字符。

\d查找数字。

\D查找非数字字符。

\s查找空白字符。

\S查找非空白字符。

\b匹配单词边界。

\B匹配非单词边界。

\0查找 NUL 字符。

\n查找换行符。

\f查找换页符。

\r查找回车符。

\t查找制表符。

\v查找垂直制表符。

\xxx查找以八进制数 xxx 规定的字符。

\xdd查找以十六进制数 dd 规定的字符。

\uxxxx查找以十六进制数 xxxx 规定的 Unicode 字符。

量词描述

n+匹配任何包含至少一个 n 的字符串。

n*匹配任何包含零个或多个 n 的字符串。

n?匹配任何包含零个或一个 n 的字符串。

n{X}匹配包含 X 个 n 的序列的字符串。

n{X,Y}匹配包含 X 或 Y 个 n 的序列的字符串。

n{X,}匹配包含至少 X 个 n 的序列的字符串。

n$匹配任何结尾为 n 的字符串。

^n匹配任何开头为 n 的字符串。

?=n匹配任何其后紧接指定字符串 n 的字符串。

?!n匹配任何其后没有紧接指定字符串 n 的字符串。

RegExp 对象方法

方法描述

compile编译正则表达式。

exec检索字符串中指定的值。返回找到的值,并确定其位置。

test检索字符串中指定的值。返回 true 或 false。

支持正则表达式的 String 对象的方法

方法描述

search检索与正则表达式相匹配的值。

match找到一个或多个正则表达式的匹配。

replace替换与正则表达式匹配的子串。

split把字符串分割为字符串数组。

原文链接:http://www.jianshu.com/p/4fb6354708e6

一、什么是正则表达式(Regular Expression)

正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑( 即用这种方法来匹配想要的东西)。

文/XZ阳光小熊(简书作者)

原文链接:http://www.jianshu.com/p/786938bb6d6f

著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

相关文章

  • 克服正则的学习的恐惧症

    前端时间的自学的时候,怎么没吃透正则的用法,最近js有一定的提高,开始有时间补充漏洞的时候! 1.何为正则呢? 正...

  • 观察自己的临在

    克服社交恐惧症 学习厚黑学 学习让人舒服的能力 把优越感留给别人 找出愤怒背后的真相 克服一系列恐惧

  • 读书笔记:《如何结交比你更优秀的人》

    书籍作者康妮。 提升自己的社交能力,首先要克服自己的社交恐惧症。 克服社交恐惧,方法如下:...

  • 演讲恐惧症的克服

    一日,校学生会报社来招新,编辑和记者的应聘。需要进行演讲。对一个喜爱文学作品,诗籍,小说,愿意写文章的女生来说,...

  • 我国超过1亿人有社交恐惧症,你是否也“对人过敏”?

    “社交恐惧症该如何克服”、“社交恐惧症是种什么样的体验”、“超9成大学生有不同程度社交焦虑”......最近的这些...

  • 姚深深:社交恐惧应该怎么克服?

    姚深深原创 提问: 社交恐惧应该怎么克服? 有没有什么好办法,可以克服社交恐惧症 姚深深回答: 真正的社交恐惧是一...

  • 克服上班恐惧症的方法

    “上班恐惧症”表现概括有两点:一是上班前不想上班,焦虑;二是上班第一天萎靡不振、烦躁。例如春节长假让上班族的社会活...

  • 克服社交恐惧症

    1. 审视现实 当你感到焦虑和胆怯,其实是你的大脑对新的刺激的反应翻唱,使你处理起来格外小心,了解这一点能帮助你合...

  • 克服自由恐惧症

    克服自由恐惧症是李希贵校长一篇文章的题目,引用在这里,因为没有比它能更好表达我的想法的名字。 从沈阳五中学习回...

  • 克服节后恐惧症

    鼓励别人欢天喜地过春节,我们在家里暗暗磨枪,这就是强者的态度。 今天刚听说一句话:不怕同桌是学霸,就怕学霸过暑假。...

网友评论

      本文标题:克服正则的学习的恐惧症

      本文链接:https://www.haomeiwen.com/subject/fehpyttx.html