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

javascript 正则表达式 笔记

 
阅读更多

 

          研究正则的原因是因为做前端技术支持,难免会遇到,要对用户的输入进行验证的时候。这些验证的规则各式各样,但是通常会用到正则表达式。
          这是w3c的手册地址
 

.      ——  匹配任意字符,(不包括换行符)
*      ——  该符号前面的字符,匹配 0 次或多次。
+      ——
 该符号前面的字符,匹配 1次或多次
?      ——
 该符号前面的字符是可选的。匹配 0 次或 1 次。
\d     ——
 匹配任何单个数字。
\w     ——
 匹配任何一个字符(包括字母数字以及下划线)。
[XYZ]  ——
 匹配字符组中的任意一个字符,即 XYZ 中的任意一个。
[XYZ]+ ——
 匹配字符组中的一个或多个字符。
         —— 匹配字符串结束的位置。
         —— 匹配字符串开始的位置。
[^a-z] —— 当出现在字符类中时,^ 表示 NOT(非);对于该示例,表示匹配任何非小写字母。
 

javascript的中用到的正则表达式的方法主要有几种:
1、test()
这是一种最常见的正则验证的方法。例如:接收单字符串参数,返回一个布尔值。不需要对验证结果进行操作时,可以选择这个方法。
var nameReg = /^[a-zA-Z-_]+$/;  

 var name = "zhangyh";  alert(nameReg.test(name));   // 输出结果为true。
 
ps:这个用法中test所验证的结果,是只要有一个可以通过验证就返回真值。
 
2、split()
这种方法接收单项正则表达式,按照正则表达式(单个字母或者字符串)切分整个字符串。

var str =  'this is my string' ;    
alert(str.split(/\s/)); //  输出 "this, is, my, string"

 

还有根据索引可以取到分割之后的字符。

 var str =  'this is my this string' ;  
alert(str.split(/\s/)[4]); //  输出"string"   

 

ps:这个时候我想起了slice()的函数以及substring(), 区别是slice()可以接受为负数的参数。
 
3、replace()
这个方法可以用来将文本中的一部分(由字符串或者正则表达式)替换为不同的字符串。
    var username = 'J;ohnSmith;@%';
    username = username.replace(/[^A-Za-z\d_-]+/, '');
    alert(username); // 输出;@%
 
 
显然这个函数的输入结果,跟我们所期望的不一样,原因何在呢?
          为了通知引擎继续搜索字符串查找更多匹配,我们可以做结束的斜杠后面直接添加一个“g”,这个修饰符或标记表示“global(全局)
          
var username =  'J;ohnSmith;@%';    
username = username.replace(/[^A-Za-z\d_-]+/g, '');  
alert(username); // 输出 JohnSmith
    
          4、math()
          返回的是个包含所有找到的满足条件的数组。
          实例一:
 var name = 'JeffreyWay';    alert(name.match(/e/)); // 输出 e;
 
          拓展:
 var name =  'JeffreyWay' ;   
 alert(name.match(/e/g)); //增加全局变量 输出 e,e;
 var name =  'JeffreyWay' ;    
alert(name.match(/e/g)[1]); //输出对应的指定项 输出 e;
          实例二:
          
var string = 'This is just a string with some 12345 and some !@#$ mixed in.';     
 alert(string.match(/[a-z]+/gi));  // 输出 "This,is,just,a,string,with,some,and,some,mixed,in" 
 
          这个输出结果之所以满足我们的想法主要是依赖于这个修饰的全局“g”以及不区分大小写的“i”,这个方法实现起来较为的轻松。如果想实现进一步的优化,输出指定的字符,增加索引即可。
var string =  'This is just a string with some 12345 and some !@#$ mixed in.' ;     
alert(string.match(/[a-z]+/gi)[2]);  //  输出 "just" 
 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics