正则常用匹配

// 转驼峰

function toCamelCase(str,pattern) {
  // replace第二个参数为一个函数时,在此场景中,
  // 第一个参数为正则匹配出来的内容, 依次是 -c -r -c,
  // 第二个参数是分组中的内容, 也就是 c r c
   return str.replace(pattern,function(all,letter){
      return letter.toUpperCase();
   });
}
var pattern = /-([a-z])/ig;
console.log(toCamelCase('font-size', pattern)); // fontSize

 

// 邮箱

// ?:非捕获分组,分组中的内容不会捕获输出

var str1 = 'alex@tahoo.com.cn';
var str2 = 'alex_1@tahoo.com.cn';
var str3 = 'alex_1.sdasdas.asdasd.com@tahoo.com.asdasd.cn';
var pattern = /(?:\w+\.)*\w+@(?:\w+\.)+[a-z]/i;
console.log(str1.match(pattern));    // alex@tahoo.com.c
console.log(str2.match(pattern));    // alex_1@tahoo.com.c
console.log(str3.match(pattern));    // alex_1.sdasdas.asdasd.com@tahoo.com.asdasd.c

 

// 密码:    6-16位      不能用空白字符      区分大小写

var str2 = '13071562801';
var pattern2 = /^\S{6,16}$/;
console.log(pattern2.exec(str2));

 

// 昵称:    中、英文、数字以及下划线                2-18位

var str1 = '_ltog';
var pattern1 = /^[\u4e00-\u9fa5\w]{2,18}$/;
console.log(pattern1.exec(str1));

 

// QQ          全是数字       首位不能为0       最少五位         目前最多11位

var str = '35246072333333333';
// var pattern = /^[1-9]\d{4,}$/;
var pattern = /^[1-9]\d{4,10}/;
console.log(pattern.exec(str)); // 3524607233

 

// 手机号

var str = '13071562801';
var pattern = /^1[3|5|8][0-9]{9}$/;
console.log(str.match(pattern)); // 13071562801

 

posted @ 2021-04-22 14:18  ltog  阅读(107)  评论(0编辑  收藏  举报