js正则表达式小结

虽然一直在使用正则表达式,但是一直没有系统的归纳。以下从正则表达是的功能进行相应的介绍。如有不正确的地方,望请纠正。

  1. 模式检测功能

     模式检测是指要检测的文本是否符合我们预期的模式,主要用于做登录、注册的验证等:如,我们经常在注册时要求账号长度为6-16位等,以下是常用正则表达式

  • 手机号码:/[1-9][0-9]{10}/
  • 邮箱:/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((.[a-zA-Z0-9_-]{2,3}){1,2})$/
  • 身份证:/([\d]{17}[\d|x])|[\d]{15}/  注:旧的身份证为15位
  • 账号检测:/[a-zA-Z][a-zA-Z0-9_]{5,17}$/ (只允许字母开头并且长度为6-18位的账号)

     2.  文本内容的部分替换

  • 将文本替换中的内容全部用其他的内容替换,例如:
1 var str="Our life is bright,we should cherish our life";
2 var pattern=/life/g;
3 var result=str.replace(pattern,"future");
4 console.log(result);
  • 可以将文本的格式替换为预期的另一种格式。如将段落中的所有单词的首字母大写
1 var str="Our life is bright,we should cherish our life";
2 var pattern=/\b\w+\b/g;
3 var result=str.replace(pattern,function(word){
4        return word.substring(0,1).toUpperCase()+word.substring(1);
5     });
6 
7 console.log(result);//Our Life Is Bright,We Should Cherish Our Life

    3. 获得模式匹配的文本

  •   使用String的match方法获得匹配的结果
1 var str="Our life is bright,we should cherish our life";
2 var pattern=/li\w*/g;
3 var result=str.match(pattern);
4 console.log(result);//["life", "life"]

 

  •   使用RegExp的exec方法获得匹配的结果
1 var str="Our life is bright,we should cherish our life";
2 var pattern=/li\w*/g;
3 var result=pattern.exec(str);
4 console.log(result);//["life", index: 4, input: "Our life is bright,we should cherish our life"]

posted @ 2016-02-20 22:45  珊瑚月  阅读(173)  评论(0编辑  收藏  举报