`
caizi12
  • 浏览: 174966 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JS正则学习笔记一

阅读更多

  大家肯定都知道正则是个什么东西,我就不多说了,大多也都用过,可是一提起来你会写正则吗,我想很多人都感觉这个正则挺复杂(估计有一半的程序员到现在还没自己亲自写过正则),正则要记那么多匹配符还要学习语法,因此停留在应用阶段,用的时候网上找个就O了,我当初也这么想地,直到那一天,开始打算学学正则,心想一次学习,终生受益。

   早有学学正则想法,当时只是刚开始学编程,看了后实在是一时理解不了,另又有那么多要记的符号,搞的头晕,后来作罢。近日项目测试,测试人员提了一个bug,关于电话验证号码问题。随即网上找了一个正则写了上去。第二天复测,没通过,说是要求可以输入手机号、固定电话,固定电话并且可以输入分机号,中间以空格或者横杠斜杠隔开。网上又开始找找找,找来找去,要不是手机号验证的,电话验证分开验证的,并且还没有那种可以用空格或者横杠斜杠隔开的例子,没有一个可以用的,实在无耐,没办法自己不懂正则,只好临阵磨枪了,打算晚上回去看看正则。

  网上下了个教程研究了一会,自己写了一个,测试了下,终于OK了。现在看的时候很快就理解了,不像当初看的时候半懂不懂的。教程是个名为deerchao的人写的,教程名称是 ”正则表达式30分钟入门教程“,一个不错的入门教程,之前了解过一点正则的人,学习起来很快的,下面那个例子学习加上测试差不多一个小时的时间。

总共写了三个,正则中可以把多个正则放在一起中间用|分开,类似于或者的关系,会从左边开始匹配第一个正则,匹配成功则不会匹配后面的两个,否则继续依次向后匹配。

   

function checkTel(phone)    
	{    
	 //校验电话号码 支持010-12345671/1234 0370-12345512-1234 15811337234
	 var reg=/^0\d{2,3}[/ -]?(\d{6,8})$|^0\d{2,3}[/ -]?\d{6,8}[/ -]\d{3,4}$|^1[3|4|5|6|7|8][0-9]\d{8}$/; 
	   var isValid;
	   isValid=reg.test(phone);
	   if (!isValid) {
	     return  false;
	   }
	   return true
	   
	} 

 

 

 另外javaScript中,

每个JavaScript字符串都可以通过三种方法来支持正则表达式,分别是match()、replace()和search(),而且对象的test() 方法是我们进行测试用的,上面的例子就是用test()的。下而是关于match()、replace()和search()方法的相关说明:

   match(): 用于正则表达式匹配,如果多个匹配出现,则返回一个含有所有匹配结果的数组,数组中的每一个条目都是一份包含了匹配数据的拷贝;如果没有匹配值,则返回空值。
replace(): 用于正则表达式匹配并将所有的匹配值替换为新的子字符串,本方法的第一个参数是正则表达式,第二个参数是进行替换的字符串。
search(): 用于在正则表达式与指定字符串之间搜索匹配值,如果出现匹配值,则返回字符串的索引值,如果没有匹配值,则返回-1。

 

正则里面其它用法和一些匹配符可以自己找找看看。

 

总体来说,正则学习起来还不是那么复杂困难,对一般的验证应用是足够了,学习时候下载一个正则验证工具还是不错的,可以快速校验你的正则表达式。不会写正则的程序兄弟们花一个小时的时间学习学习吧。

 

0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics