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. 트림 기능 구현
const trim = ( str ) => {
return str. replace ( / ^\s*|\s*$ / g , '' )
}
trim ( " sdnkaf " )
const trim1 = ( str ) => {
return str. replace ( / ^\s*(.*?)\s*$ / g , '$1' )
}
trim1 ( " sdnkaf " )
5. 이름을 통해 URL 쿼리 매개변수 가져오기
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" ) ) ;