1、 数字价格千分位分割
'123456789'.replace(/(?!^)(?=(\d{3})+$)/g, ',')
2、手机号3-4-4分割,表单搜集场景,经常遇到的手机格式化
let mobile = '18379836654'
let mobileReg = /(?=(\d{4})+$)/g
console.log(mobile.replace(mobileReg, '-'))
const formatMobile = (mobile) => {
return String(mobile).slice(0,11)
.replace(/(?<=\d{3})\d+/, ($0) =>'-' + $0)
.replace(/(?<=[\d-]{8})\d{1,4}/, ($0) =>'-' + $0)
}
console.log(formatMobile(123))
console.log(formatMobile(1234))
console.log(formatMobile(12345))
console.log(formatMobile(123456))
console.log(formatMobile(1234567))
console.log(formatMobile(12345678))
console.log(formatMobile(123456789))
console.log(formatMobile(12345678911))
3、验证密码的合法性
let reg = /(((?=.*\d)((?=.*[a-z])|(?=.*[A-Z])))|(?=.*[a-z])(?=.*[A-Z]))^[a-zA-Z\d]{6,12}$/
console.log(reg.test('123456'))
console.log(reg.test('aaaaaa'))
console.log(reg.test('AAAAAAA'))
console.log(reg.test('1a1a1a'))
console.log(reg.test('1A1A1A'))
console.log(reg.test('aAaAaA'))
console.log(reg.test('1aA1aA1aA'))
4、实现一个trim函数
const trim = (str) => {
return str.replace(/^\s*|\s*$/g, '')
}
trim(" sdnkaf ")
const trim1 = (str) => {
return str.replace(/^\s*(.*?)\s*$/g, '$1')
}
trim1(" sdnkaf ")
5、通过name获取url query参数
const getQueryByName = (name) => {
const queryNameRegex = new RegExp(`[?&]${
name}=([^&]*)(&|$)`)
const queryNameMatch = window.location.search.match(queryNameRegex)
return queryNameMatch ? decodeURIComponent(queryNameMatch[1]) : ''
}
getQueryByName("not_checkout")
6、匹配24小时制时间
const check24TimeRegexp = /^(?:(?:0?|1)\d|2[0-3]):(?:0?|[1-5])\d$/
console.log(check24TimeRegexp.test('01:14'))
console.log(check24TimeRegexp.test('23:59'))
console.log(check24TimeRegexp.test('23:60'))
console.log(check24TimeRegexp.test('1:14'))
console.log(check24TimeRegexp.test('1:1'))
7、检测URL前缀
const checkProtocol = /^https?:/
console.log(checkProtocol.test('https://juejin.cn/'))
console.log(checkProtocol.test('http://juejin.cn/'))
console.log(checkProtocol.test('//juejin.cn/'))
8、检测中文
const checkChineseRegex = /^[\u4E00-\u9FA5]+$/
console.log(checkChineseRegex.test('前端胖头鱼'))
console.log(checkChineseRegex.test('1前端胖头鱼'))
console.log(checkChineseRegex.test('前端胖头鱼2'))
9、匹配手机号
const mobileRegex =
/^(?:\+?86)?1(?:3\d{3}|5[^4\D]\d{2}|8\d{3}|7(?:[235-8]\d{2}|4(?:0\d|1[0-2]|9\d))|9[0-35-9]\d{2}|66\d{2})\d{6}$/;
console.log(mobileRegex.test("18379867725"));
console.log(mobileRegex.test("123456789101"));
console.log(mobileRegex.test("+8618379867725"));
console.log(mobileRegex.test("8618379867725"));
10、英文单词加前后空格
console.log("you说来是come,去是go".replace(/\b/g, " "));
11、判断版本号
const versionRegexp = /^(?:\d+\.){2}\d+$/;
console.log(versionRegexp.test("1.1.1"));
console.log(versionRegexp.test("1.000.1"));
console.log(versionRegexp.test("1.000.1.1"));