正则常用匹配
// 转驼峰
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