正则常用表达式
数字价格千分位分割
1 | function numSplit(str) { |
补充小数千分位支持
1 | const formatNum = (numStr) => { |
手机号3-4-4分割
1 | function formatMobile(mobile) { |
将字符串首字母转化为大写,剩下为小写
1 | const capitalize = (string) => { |
将字符串驼峰化
- foo Bar => fooBar
- foo-bar—- => fooBar
- foo_bar__ => fooBar
1
2
3
4
5
6const camelCase = (string) => {
const camelCaseRegex = /[-_\s]+(.)?/g
return string.replace(camelCaseRegex, (match, char) => {
return char ? char.toUpperCase() : ''
})
}
实现一个trim函数
1 | // 去除空格法 |
表单验证常用正则
用户名正则
1
2
3
4//用户名正则,4到16位(字母,数字,下划线,减号)
var uPattern = /^[a-zA-Z0-9_-]{4,16}$/;
//输出 true
console.log(uPattern.test("caibaojian"));密码强度正则
1
2
3
4//密码强度正则,最少6位,包括至少1个大写字母,1个小写字母,1个数字,1个特殊字符
var pPattern = /^.*(?=.{6,})(?=.*d)(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*? ]).*$/;
//输出 true
console.log("=="+pPattern.test("caibaojian#"));整数正则
1
2
3
4
5
6
7
8
9
10
11
12//正整数正则
var posPattern = /^d+$/;
//负整数正则
var negPattern = /^-d+$/;
//整数正则
var intPattern = /^-?d+$/;
//输出 true
console.log(posPattern.test("42"));
//输出 true
console.log(negPattern.test("-42"));
//输出 true
console.log(intPattern.test("-42"));数字正则(可以是整数也可以是浮点数)
1
2
3
4
5
6
7
8
9//正数正则
var posPattern = /^d*.?d+$/;
//负数正则
var negPattern = /^-d*.?d+$/;
//数字正则
var numPattern = /^-?d*.?d+$/;
console.log(posPattern.test("42.2"));
console.log(negPattern.test("-42.2"));
console.log(numPattern.test("-42.2"));Email正则
1
2
3var ePattern = /^([A-Za-z0-9_-.])+@([A-Za-z0-9_-.])+.([A-Za-z]{2,4})$/;
//输出 true
console.log(ePattern.test("99154507@qq.com"));手机号正则
1
2
3var mPattern = /^1[34578]d{9}$/;
//输出 true
console.log(mPattern.test("15507621888"));