프로젝트에서 일반적으로 사용되는 일반 규칙(가격 천 자리 형식, 휴대폰 번호 3-4-4 형식, 비밀번호 확인, 공백 제거, URL 매개변수 가져오기, 24시간제 감지, URL 접두어 감지, 중국어 감지, 휴대폰 감지) 숫자, 버전 번호를 확인하려면 영어 단어 앞뒤에 공백을 추가하세요)

1. 디지털 가격을 천분의 일로 나누기

'123456789'.replace(/(?!^)(?=(\d{3})+$)/g, ',') // "123,456,789"

2. 휴대폰 번호 3-4-4 분할, 양식 수집 시나리오, 자주 발생하는 휴대폰 서식

let mobile = '18379836654'
let mobileReg = /(?=(\d{4})+$)/g
console.log(mobile.replace(mobileReg, '-')) // 183-7983-6654
//用户输入手机号的过程中,不断格式化
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)) // 123
console.log(formatMobile(1234)) // 123-4
console.log(formatMobile(12345)) // 123-45
console.log(formatMobile(123456)) // 123-456
console.log(formatMobile(1234567)) // 123-4567
console.log(formatMobile(12345678)) // 123-4567-8
console.log(formatMobile(123456789)) // 123-4567-89
console.log(formatMobile(12345678911)) // 123-4567-8911

3. 비밀번호의 적법성 확인

//密码长度是6-12位,由数字、小写字母和大写字母组成,但必须至少包括2种字符
let reg = /(((?=.*\d)((?=.*[a-z])|(?=.*[A-Z])))|(?=.*[a-z])(?=.*[A-Z]))^[a-zA-Z\d]{6,12}$/
console.log(reg.test('123456')) // false
console.log(reg.test('aaaaaa')) // false
console.log(reg.test('AAAAAAA')) // false
console.log(reg.test('1a1a1a')) // true
console.log(reg.test('1A1A1A')) // true
console.log(reg.test('aAaAaA')) // true
console.log(reg.test('1aA1aA1aA')) // true

4. 트림 기능 구현

//去除字符串的首尾空格
const trim = (str) => {
    
    
  return str.replace(/^\s*|\s*$/g, '')    
}
trim(" sdnkaf ") //"sdnkaf"
// 提取非空格法
const trim1 = (str) => {
    
    
 return str.replace(/^\s*(.*?)\s*$/g, '$1')    
}
trim1(" sdnkaf ")//"sdnkaf"

5. 이름을 통해 URL 쿼리 매개변수 가져오기

const getQueryByName = (name) => {
    
    
    const queryNameRegex = new RegExp(`[?&]${
      
      name}=([^&]*)(&|$)`)
    const queryNameMatch = window.location.search.match(queryNameRegex)
    // 一般都会通过decodeURIComponent解码处理
	return queryNameMatch ? decodeURIComponent(queryNameMatch[1]) : ''
}
//https://editor.csdn.net/md?not_checkout=1&articleId=120011793
getQueryByName("not_checkout") //1

6. 24시간제 시간 맞추기

//判断时间time是否符合24小时制 
const check24TimeRegexp = /^(?:(?:0?|1)\d|2[0-3]):(?:0?|[1-5])\d$/
console.log(check24TimeRegexp.test('01:14')) // true
console.log(check24TimeRegexp.test('23:59')) // true
console.log(check24TimeRegexp.test('23:60')) // false
console.log(check24TimeRegexp.test('1:14')) // true
console.log(check24TimeRegexp.test('1:1')) // true

7. URL 접두사 감지

//检查一个url是否是http或者https协议头
const checkProtocol = /^https?:/
console.log(checkProtocol.test('https://juejin.cn/')) // true
console.log(checkProtocol.test('http://juejin.cn/')) // true
console.log(checkProtocol.test('//juejin.cn/')) // false

8. 중국어 감지

//检测字符串str是否是都由中文组成
const checkChineseRegex = /^[\u4E00-\u9FA5]+$/
console.log(checkChineseRegex.test('前端胖头鱼'))//true
console.log(checkChineseRegex.test('1前端胖头鱼'))//false
console.log(checkChineseRegex.test('前端胖头鱼2'))//false

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"));//true
        console.log(mobileRegex.test("123456789101"));//false
        console.log(mobileRegex.test("+8618379867725"));//true
        console.log(mobileRegex.test("8618379867725"));//true

10. 영어 단어 앞뒤에 공백 추가

//字母汉字组成的字符串,用正则给英文单词加前后空格。
//如:you说来是come,去是go => you 说来是 come ,去是 go 例子
console.log("you说来是come,去是go".replace(/\b/g, " ")); // you 说来是 come ,去是 go 

11. 버전 번호 확인

//要求版本号必须是X.Y.Z格式,其中XYZ都是至少一位的数字
const versionRegexp = /^(?:\d+\.){2}\d+$/;
        console.log(versionRegexp.test("1.1.1"));//true
        console.log(versionRegexp.test("1.000.1"));//true
        console.log(versionRegexp.test("1.000.1.1"));//false

Supongo que te gusta

Origin blog.csdn.net/qiaoqiaohong/article/details/120011793
Recomendado
Clasificación