æ¬æ¥ãJavaScriptããã¥ã¢ã«ã®ç¿»èš³ã®ç¬¬9éšã§ã¯ãES7ãES8ãããã³ES9æšæºã®ãããã§èšèªã«ç»å Žããæ©èœã®æŠèŠãäœæãããŸãã
â
ããŒã1ïŒæåã®ããã°ã©ã ãèšèªæ©èœãæšæºâ
ããŒã2ïŒã³ãŒãã¹ã¿ã€ã«ãšããã°ã©ã æ§é â
ããŒã3ïŒå€æ°ãããŒã¿åãåŒããªããžã§ã¯ãâ
ããŒã4ïŒæ©èœâ
ããŒã5ïŒé
åãšã«ãŒãâ
ããŒã6ïŒäŸå€ãã»ãã³ãã³ãã¯ã€ã«ãã«ãŒããªãã©ã«â
ããŒã7ïŒå³æ Œã¢ãŒãããã®ããŒã¯ãŒããã€ãã³ããã¢ãžã¥ãŒã«ãæ°åŠèšç®â
ããŒã8ïŒES6æ©èœã®æŠèŠâ
ããŒã9ïŒES7ãES8ãããã³ES9æšæºã®æŠèŠ
ES7æšæº
å
¬åŒçšèªã«åŸã£ãŠES2016ãšåŒã°ããES7æšæºã¯ã2016幎å€ã«ãªãªãŒã¹ãããŸããã 圌ã¯ãES6ãšæ¯èŒããŠãèšèªã«ããããããã®ã¯ããã»ã©æ°ãããã®ã§ã¯ãããŸããã ç¹ã«ã次ã®ããšã«ã€ããŠè©±ããŠããïŒ
Array.prototype.includes()
ã¡ãœããã- ã¹ã乿Œç®åã
Arrayã¡ãœããArray.prototype.includesïŒïŒ
Array.prototype.includes()
ã¡ãœããã¯ãé
åå
ã®èŠçŽ ã®ååšã確èªããããã«èšèšãããŠããŸãã é
åã§ç®çã®ãã®ãèŠã€ãããšãfind-
false
ã§ã¯ãªã
true
è¿ã
true
ã ES7ããåã¯ã
indexOf()
ã¡ãœããã䜿çšããŠåãæäœãå®è¡ããèŠçŽ ãèŠã€ãã£ãå Žåã¯ãé
åå
ã§æåã«èŠã€ãã£ãã€ã³ããã¯ã¹ãè¿ããŸãã
indexOf()
ãèŠçŽ ãèŠã€ããããªãå Žåãæ°å€
-1
è¿ããŸãã
JavaScriptã¿ã€ã倿èŠåã«åŸã£ãŠãæ°å€
-1
true
倿ãã
true
ã ãã®çµæã
indexOf()
æäœã®çµæã確èªããã«ã¯ã次ã®åœ¢åŒã®ç¹ã«äŸ¿å©ã§ã¯ãªãæ§ç¯ã䜿çšããå¿
èŠããããŸãã
if ([1,2].indexOf(3) === -1) { console.log('Not found') }
åæ§ã®ç¶æ³ã§ã
indexOf()
èŠçŽ ãèŠã€ããããšãªã
false
è¿ããšä»®å®ãããšã以äžã«ç€ºããããªãã®ã䜿çšãããšãã³ãŒãã¯æ£ããæ©èœããŸããã
if (![1,2].indexOf(3)) {
ãã®å Žåãæ§é
![1,2].indexOf(3)
ã¯
false
ãäžãã
false
![1,2].indexOf(3)
false
ã
include
includes()
ã¡ãœããã䜿çšãããšããã®ãããªæ¯èŒã¯ããè«ççã«ãªããŸãã
if (![1,2].includes(3)) { console.log('Not found') }
ãã®å Žåãæ§é
[1,2].includes(3)
ã¯
false
è¿ãããã®å€ã¯æŒç®å
!
true
å€ãããã³ã³ãœãŒã«ã¯é
åå
ã®ã¢ã€ãã ãèŠã€ãããªãã£ãããšã瀺ãã¡ãã»ãŒãžãåãåããŸãã
âã¹ã乿Œç®å
ã¹ã乿Œç®åã¯ã
Math.pow()
ã¡ãœãããšåãæ©èœãå®è¡ããŸãããèšèªã®äžéšã§ãããããã©ã€ãã©ãªé¢æ°ããã䜿çšããæ¹ã䟿å©ã§ãã
Math.pow(4, 2) == 4 ** 2
ãã®æŒç®åã¯ãJSãžã®å¿«é©ãªè¿œå ãšèŠãªãããšãã§ããç¹å®ã®èšç®ãå®è¡ããã¢ããªã±ãŒã·ã§ã³ã§åœ¹ç«ã¡ãŸãã ä»ã®ããã°ã©ãã³ã°èšèªã«ãåæ§ã®æŒç®åãååšããŸãã
ES8æšæº
ES8 StandardïŒES2017ïŒã¯2017幎ã«ãªãªãŒã¹ãããŸããã 圌ã¯ãES7ã®ããã«ãèšèªã«å€ãããããããŸããã§ããã ã€ãŸããæ¬¡ã®æ©èœã«ã€ããŠè©±ããŠããã
- æå®ãããé·ãã«æååã远å ããŸãã
- ã¡ãœãã
Object.values()
ã - ã¡ãœãã
Object.entries()
ã - ã¡ãœãã
Object.getOwnPropertyDescriptors()
ã - 颿°ãã©ã¡ãŒã¿ãŒã®æ«å°Ÿã®ã³ã³ãã
- éåæé¢æ°ã
- å
±æã¡ã¢ãªãšã¢ãããã¯æäœãæäœããŸãã
givenæå®ãããé·ãã«è¡ã远å ãã
ES8ã§ã¯ã
padStart()
ããã³
padEnd()
2ã€ã®æ°ãã
String
ãªããžã§ã¯ãã¡ãœãããå°å
¥ãããŸããã
padStart()
ã¡ãœããã¯ãæçµè¡ãç®çã®é·ãã«éãããŸã§ãçŸåšã®è¡ãå¥ã®è¡ã§åããŸãã è¡ã®å
é ïŒå·ŠïŒã§å¡ãã€ã¶ããè¡ãããŸãã ãã®æ¹æ³ã®äœ¿ç𿹿³ã¯æ¬¡ã®ãšããã§ãã
str.padStart(targetLength [, padString])
ããã§ã
str
ã¯çŸåšã®è¡ã
targetLength
ã¯åèšè¡ã®é·ãã§ãïŒçŸåšã®è¡ã®é·ãããçãå Žåããã®è¡ã¯å€æŽãªãã§è¿ãããŸãïŒ
padString
ã¯ãªãã·ã§ã³ã®ãã©ã¡ãŒã¿ãŒã§ããçŸåšã®è¡ãåããããã«äœ¿çšãããè¡ã§ãã
padString
æå®ãããŠããªãå Žåãã¹ããŒã¹æåã䜿çšããŠ
padString
çŸåšã®è¡ãæå®ãããé·ããŸã§åã蟌ã¿ãŸãã
padEnd()
ã¡ãœããã¯
padEnd()
䌌ãŠã
padStart()
ããè¡ã¯å³åŽã§å¡ãã€ã¶ãããŸãã
ãããã®æ¹æ³ã®äœ¿çšäŸãæ€èšããŠãã ããã
const str = 'test'.padStart(10) const str1 = 'test'.padEnd(10,'*') console.log(`'${str}'`)
ããã§ãå¿
èŠãªé·ãã®æååã®ã¿ã§
padStart()
ã䜿çšãããšãå
ã®æååã®å
é ã«ã¹ããŒã¹ã远å ãããŸããã
padEnd()
ã䜿çšããŠæçµè¡ã®é·ããšãããåããè¡ã䜿çšãããšãæå
*
ãå
ã®è¡ã®æ«å°Ÿã«è¿œå ãããŸããã
âã¡ãœããObject.valuesïŒïŒ
ãã®ã¡ãœããã¯ããªããžã§ã¯ãèªäœã®ããããã£ã®å€ãå«ãé
åãè¿ããŸããã€ãŸãããããã¿ã€ããã§ãŒã³ãä»ããŠã¢ã¯ã»ã¹ã§ããããããã£ã§ã¯ãªãããªããžã§ã¯ãã«å«ãŸããããããã£ã®å€ãè¿ããŸãã
äœ¿çšæ¹æ³ã¯æ¬¡ã®ãšããã§ãã
const person = { name: 'Fred', age: 87 } const personValues = Object.values(person) console.log(personValues)
ãã®ã¡ãœããã¯é
åã«ãé©çšãããŸãã
âã¡ãœããObject.entriesïŒïŒ
ãã®ã¡ãœããã¯ãé
åãè¿ããŸããé
åã®åèŠçŽ ã¯ããªããžã§ã¯ãã®ããããã£ã®ããŒãšå€ã
[key, value]
圢åŒã§å«ãé
åã§ããããŸãã
const person = { name: 'Fred', age: 87 } const personValues = Object.entries(person) console.log(personValues)
ãã®ã¡ãœãããé
åã«é©çšãããšãèŠçŽ ã®ã€ã³ããã¯ã¹ãããŒãšããŠè¡šç€ºããã察å¿ããã€ã³ããã¯ã¹ã§é
åã«ä¿åãããŠãããã®ãå€ãšããŠè¡šç€ºãããŸãã
âgetOwnPropertyDescriptorsïŒïŒã¡ãœãã
ãã®ã¡ãœããã¯ããªããžã§ã¯ãèªäœã®ãã¹ãŠã®ããããã£ã«é¢ããæ
å ±ãè¿ããŸãã 屿§ã»ããïŒèšè¿°åïŒã¯ããªããžã§ã¯ãã®ããããã£ã«é¢é£ä»ããããŠããŸãã ç¹ã«ã次ã®å±æ§ã«ã€ããŠèª¬æããŠããŸãã
value
ãªããžã§ã¯ãã®ããããã£ã®å€ãwritable
-ããããã£ã倿Žã§ããå Žåã¯true
ãå«ãŸãtrue
ã- get-ããããã£ã«é¢é£ä»ããããã²ãã¿ãŒé¢æ°ãå«ããããã®ãããªé¢æ°ããªãå Žåã¯
undefined
å«ã¿ãŸãã - set-ããããã£ãŸãã¯
undefined
ã»ãã¿ãŒé¢æ°ãå«ã¿ãŸãã configurable
-falseã®å Žåãããããã£ãåé€ã§ããããã®å±æ§ã¯å€ãé€ããŠå€æŽã§ããŸãããenumerable
-ãã®ããããã£ã«trueãå«ãŸããå Žå-
ãåæãããŸãã
ãã®æ¹æ³ã®äœ¿ç𿹿³ã¯æ¬¡ã®ãšããã§ãã
Object.getOwnPropertyDescriptors(obj)
ããããã£æ
å ±ãæ€çŽ¢ãããªããžã§ã¯ããåãåãããã®æ
å ±ãå«ããªããžã§ã¯ããè¿ããŸãã
const person = { name: 'Fred', age: 87 } const propDescr = Object.getOwnPropertyDescriptors(person) console.log(propDescr)
ãªããã®æ¹æ³ãå¿
èŠãªã®ã§ããïŒ å®éã«ã¯ããªããžã§ã¯ãã®å°ããªã³ããŒãäœæããããä»ã®ããããã£ã®äžã§ã²ãã¿ãŒãã»ãã¿ãŒãã³ããŒãããããããšãã§ããŸãã ES6æšæºã«ç»å Žãã
Object.assign()
ã¡ãœããã䜿çšããŠãªããžã§ã¯ããã³ããŒããããšã¯ã§ããŸããã§ããã
次ã®äŸã«ã¯ã
console.log()
ã䜿çšããŠã察å¿ããããããã£ã«æžã蟌ãããšããŠãããã®ã衚瀺ããã»ãã¿ãŒãæã€ãªããžã§ã¯ãããããŸãã
const person1 = { set name(newName) { console.log(newName) } } person1.name = 'x'
assign()
ã¡ãœããã䜿çšããŠãã®ãªããžã§ã¯ããã³ããŒããŠã¿ãŸãããã
const person2 = {} Object.assign(person2, person1) person2.name = 'x'
ã芧ã®ãšããããã®ã¢ãããŒãã¯æ©èœããŸããã å
ã®ãªããžã§ã¯ãã®ã»ãã¿ãŒã§ãã£ã
name
ããããã£ã¯ãéåžžã®ããããã£ãšããŠè¡šãããããã«ãªããŸããã
次ã«ãã¡ãœãã
Object.defineProperties()
ïŒES5.1ã§ç»å ŽïŒããã³
Object.getOwnPropertyDescriptors()
ã䜿çšããŠãªããžã§ã¯ããã³ããŒããŸãã
const person3 = {} Object.defineProperties(person3, Object.getOwnPropertyDescriptors(person1)) person3.name = 'x'
ããã§ã¯ãã»ãã¿ãŒã¯ãªããžã§ã¯ãã®ã³ããŒã«æ®ããŸãã
Object.assign()
åºæã®å¶éã¯ããªããžã§ã¯ããè€è£œããããã«äœ¿çšããå Žåã
Object.create()
ã¡ãœããã«ãåºæã§ããããšã«æ³šæããŠãã ããã
function颿°ãã©ã¡ãŒã¿ãŒã®å®äºã³ã³ã
ãã®æ©èœã«ããã颿°ã®å®£èšæããã³åŒã³åºãæã«ããã©ã¡ãŒã¿ãŒãŸãã¯åŒæ°ã®ãªã¹ãã®æåŸã«ããããã³ã³ããæ®ãããšãã§ããŸãã
const doSomething = ( var1, var2, ) => {
ããã«ãããããŒãžã§ã³ç®¡çã·ã¹ãã ã®äœ¿ãããããåäžããŸãã ã€ãŸãã颿°ã«æ°ãããã©ã¡ãŒã¿ãŒã远å ãããšãã«ãã³ã³ããæ¿å
¥ããããã ãã«æ¢åã®ã³ãŒãã倿Žããå¿
èŠããªããšããäºå®ã«ã€ããŠè©±ããŸãã
synchronouséåæé¢æ°
async/await
ã³ã³ã¹ãã©ã¯ããES2017æšæºã«ç»å ŽããŸãããããã¯ããã®ããŒãžã§ã³ã®èšèªã®æãéèŠãªé©æ°ãšèŠãªãããšãã§ããŸãã
éåæé¢æ°ã¯ãpromiseãšãžã§ãã¬ãŒã¿ãŒã®çµã¿åããã§ããã以åã¯å€§éã®ãã³ãã¬ãŒãã³ãŒããšäžäŸ¿ãªäžé£ã®promiseãèšè¿°ããå¿
èŠããã£ãæ§é ãç°¡çŽ åããŸãã å®éãç§ãã¡ã¯çŽå®ã«é¢ããé«ã¬ãã«ã®æœè±¡åã«ã€ããŠè©±ããŠããã
ES2015æšæºã«çŽæãç»å ŽãããšããçŽæã¯éåæã³ãŒãã®æ¢åã®åé¡ã解決ããããã«èšèšãããŠããŸããã ããããES2015ãšES2017ã®æšæºãå
±æãã2幎éã§ãçŽæã¯ãããã®åé¡ã®æçµçãªè§£æ±ºçãšã¯èŠãªãããªãããšãæããã«ãªããŸããã
ç¹ã«ãçŽæã¯ãã³ãŒã«ããã¯å°çãã®åé¡ã解決ããããšãç®çãšããŠããŸãããããã®åé¡ã解決ããŠãã䜿çšãããã³ãŒãã®è€éãã®ããã«åœŒãèªèº«ã¯æé«ã®é¢ã瀺ããŸããã§ããã å®éã
async/await
ã³ã³ã¹ãã©ã¯ãã¯ãããã¹ã®åé¡ã解決ããéåæã³ãŒãã®äœ¿ãããããåäžãããŸãã
äŸãèããŠã¿ãŸãããã
function doSomethingAsync() { return new Promise((resolve) => { setTimeout(() => resolve('I did something'), 3000) }) } async function doSomething() { console.log(await doSomethingAsync()) } console.log('Before') doSomething() console.log('After')
ãã®ã³ãŒãã¯ã以äžãã³ã³ãœãŒã«ã«åºåããŸãã
Before After I did something
ã芧ã®ãšããã
doSomething()
åŒã³åºãã
After
ãã³ã³ãœãŒã«ã«
Before
ã
After
ã衚瀺ããã3ç§ãçµéããåŸ
doSomething()
ããã°ã©ã ãå®è¡ãç¶ã
I did something
ã
éåæé¢æ°ã®ã·ãªã¢ã«åŒã³åºã
å¿
èŠã«å¿ããŠãéåæé¢æ°ã¯åŒã³åºãã®ãã§ãŒã³ã®ãããªãã®ã圢æã§ããŸãã ãã®ãããªãã¶ã€ã³ã¯ãçŽæã®ã¿ã«åºã¥ããŠãé¡äŒŒã®ãã®ãããèªã¿ããããåªããŠããŸãã ããã¯æ¬¡ã®äŸã§èŠãããšãã§ããŸãã
function promiseToDoSomething() { return new Promise((resolve)=>{ setTimeout(() => resolve('I did something'), 10000) }) } async function watchOverSomeoneDoingSomething() { const something = await promiseToDoSomething() return something + ' and I watched' } async function watchOverSomeoneWatchingSomeoneDoingSomething() { const something = await watchOverSomeoneDoingSomething() return something + ' and I watched as well' } watchOverSomeoneWatchingSomeoneDoingSomething().then((res) => { console.log(res)
âå
±æã¡ã¢ãªãšã¢ãããã¯æäœ
ããã§ã¯ãå
±æã¡ã¢ãªé åãèšè¿°ããããšãã§ãã
SharedArrayBufferãªããžã§ã¯ããšãéçã¡ãœããã®åœ¢åŒã§ã¢ãããã¯æäœã®ã»ãããå«ã
Atomicsãªããžã§ã¯ãã«ã€ããŠèª¬æããŠããŸãã ãããã®ãªããžã§ã¯ããããã°ã©ããŒã«äžããå¯èœæ§ã«é¢ãã詳现ã¯
ããã§èŠã€ããããšãã§ã
ãŸã ã
ES9æšæº
ES9ïŒES2018ïŒã¯ããã®è³æã®å
¬éæç¹ã§ã®æšæºã®ææ°ããŒãžã§ã³ã§ãã äž»ãªæ©èœã¯æ¬¡ã®ãšããã§ãã
- ãªããžã§ã¯ãã«ã¹ãã¬ããããã³ã¬ã¹ãã¹ããŒãã¡ã³ããé©çšããŸãã
- éåæã€ãã¬ãŒã¿ãŒã
- ã¡ãœãã
Promise.prototype.finally()
ã - æ£èŠè¡šçŸã®æ©èœåŒ·åã
spreadãªããžã§ã¯ããžã®ã¹ãã¬ããããã³ã¬ã¹ãæŒç®åã®é©çš
ES6ã«ç»å Žããé
åã®æäœã«äœ¿çšã§ããæ®ãã®æŒç®åãšã¹ãã¬ããæŒç®åã«ã€ããŠã¯ãã§ã«èª¬æããŸããã ã©ã¡ãã3ã€ã®ãããã®ããã«èŠããŸãã æ¬¡ã®é
åã®æ§é åã®äŸã§ã¯ãrestæŒç®åã䜿çšããŠããã®æåãš2çªç®ã®èŠçŽ ã
first
ãš
second
宿°ã«å
¥ããæ®ãããã¹ãŠ
others
宿°ã«å
¥ããããšãã§ããŸãã
const numbers = [1, 2, 3, 4, 5] const [first, second, ...others] = numbers console.log(first)
spread
æŒç®åã䜿çšãããšãéåžžã®ãã©ã¡ãŒã¿ãŒãªã¹ããæåŸ
ãã颿°ã«é
åãæž¡ãããšãã§ããŸãã
const numbers = [1, 2, 3, 4, 5] const sum = (a, b, c, d, e) => a + b + c + d + e const res = sum(...numbers) console.log(res)
åãã¢ãããŒãã䜿çšããŠããªããžã§ã¯ããæäœã§ããããã«ãªããŸããã æ¬¡ã«ãç Žå£çãªä»£å
¥æäœã§restã¹ããŒãã¡ã³ãã䜿çšããäŸã瀺ããŸãã
const { first, second, ...others } = { first: 1, second: 2, third: 3, fourth: 4, fifth: 5 } console.log(first)
以äžã¯ãæ¢åã®ãªããžã§ã¯ãã«åºã¥ããŠæ°ãããªããžã§ã¯ããäœæãããšãã«äœ¿çšãããã¹ãã¬ããã¹ããŒãã¡ã³ãã§ãã ãã®äŸã¯åã®äŸãç¶ããŠããŸãã
const items = { first, second, ...others } console.log(items)
synchronouséåæã€ãã¬ãŒã¿ãŒ
æ°ãã
for-await-of
æ§é ã«ãããã«ãŒãã§ãããã¹ãè¿ãéåæé¢æ°ãåŒã³åºãããšãã§ããŸãã ãã®ãããªã«ãŒãã¯ã次ã®ã¹ãããã«é²ãåã«ãçŽæã®è§£æ±ºãåŸ
ã¡ãŸãã å€èŠ³ã¯æ¬¡ã®ãšããã§ãã
for await (const line of readLines(filePath)) { console.log(line) }
åæã«ãéåæã«ãŒãã§ã¯ãã®ãããªã«ãŒãã䜿çšããå¿
èŠãããããšã«æ³šæããå¿
èŠããããŸã
async/await
ã³ã³ã¹ãã©ã¯ãã䜿çšããå Žåãšåãæ¹æ³ã§ãã
âPromise.prototype.finallyïŒïŒã¡ãœãã
çŽæãæ£åžžã«è§£æ±ºããããšã次ã®
then()
ã¡ãœãããåŒã³åºãããŸãã åé¡ãçºçããå Žåã
catch()
ã¡ãœãããåŒã³åºãããŸãã
finally()
ã¡ãœããã䜿çšãããšãåã«äœãèµ·ãã£ããã«é¢ä¿ãªãã³ãŒããå®è¡ã§ããŸãã
fetch('file.json') .then(data => data.json()) .catch(error => console.error(error)) .finally(() => console.log('finished'))
âæ£èŠè¡šçŸã®æ¹å
æ£èŠè¡šçŸã«ã¯ãæååãé¡åçã«ãã§ãã¯ããæ©èœããããŸãïŒ
?<=
ïŒã ããã«ãããä»ã®æ§é ãååšããè¡ã®åã«ç¹å®ã®æ§é ãæ€çŽ¢ã§ããŸãã
ES 2018æšæºã®åã«JavaScriptã§å®è£
ãããæ£èŠè¡šçŸã«ã¯ã
?=
Constructã䜿çšããŠãã§ãã¯ã«å
è¡ããæ©èœããããŸããã ãã®ãããªãã§ãã¯ã«ãããè¡ã®ç¹å®ã®ãã©ã°ã¡ã³ãã®åŸã«å¥ã®ãã©ã°ã¡ã³ããç¶ããã©ãããããããŸãã
const r = /Roger(?= Waters)/ const res1 = r.test('Roger is my dog') const res2 = r.test('Roger is my dog and Roger Waters is a famous musician') console.log(res1)
建èš
?!
éã®æäœãå®è¡ããŸã-æå®ãããè¡ã®åŸã«å¥ã®è¡ãç¶ããªãå Žåã«ã®ã¿äžèŽãèŠã€ãããŸãã
const r = /Roger(?! Waters)/g const res1 = r.test('Roger is my dog') const res2 = r.test('Roger is my dog and Roger Waters is a famous musician') console.log(res1)
é¡åæ€èšŒã§ã¯ããã§ã«è¿°ã¹ãããã«ã
?<=
æ§æ
?<=
䜿çšãããŸãã
const r = /(?<=Roger) Waters/ const res1 = r.test('Pink Waters is my dog') const res2 = r.test('Roger is my dog and Roger Waters is a famous musician') console.log(res1)
説æãããã®ãšåå¯Ÿã®æäœã¯ãæ§é ã䜿çšããŠå®è¡ã§ããŸã
?<!
ã
const r = /(?<!Roger) Waters/ const res1 = r.test('Pink Waters is my dog') const res2 = r.test('Roger is my dog and Roger Waters is a famous musician') console.log(res1)
Unicodeæ£èŠè¡šçŸãšã¹ã±ãŒãã·ãŒã±ã³ã¹
æ£èŠè¡šçŸã§ã¯ãä»»æã®æ°åã«äžèŽãã
\d
ã¯ã©ã¹ãä»»æã®ç©ºçœæåã«äžèŽãã
\s
ã¯ã©ã¹ãä»»æã®è±æ°åã«äžèŽãã
\w
ã¯ã©ã¹ãªã©ã䜿çšã§ããŸãã åé¡ã®æ©èœã¯ãæ£èŠè¡šçŸã§äœ¿çšã§ããã¯ã©ã¹ã®ç¯å²ãæ¡åŒµããUnicodeã·ãŒã±ã³ã¹ãæäœã§ããããã«ããŸãã ã¯ã©ã¹
\p{}
ããã³ã¯ã©ã¹ã®é
\P{}
ã«ã€ããŠè©±ããŠããŸãã
Unicodeã§ã¯ãåæåã«ã¯äžé£ã®ããããã£ããããŸãã ãããã®ããããã£ã¯ã
\p{}
ã°ã«ãŒãã®äžæ¬åŒ§ã§ç€ºãããŠããŸãã ããšãã°ã
Script
ããããã£ã¯ãæåãå±ããèšèªã®ãã¡ããªã決å®ãã
ASCII
ããããã£ã¯è«ççã§ãããASCIIæåã«ã€ããŠã¯
true
ã«ãªããŸãã ããšãã°ãäžéšã®è¡ã«ASCIIæåã®ã¿ãå«ãŸããŠãããã©ãããããããŸãã
console.log(r.test('abc'))
ASCII_Hex_Digit
ããããã£ã¯ã16鲿°ã®æžã蟌ã¿ã«äœ¿çšã§ããæåã«å¯ŸããŠã®ã¿
true
ã§ãã
const r = /^\p{ASCII_Hex_Digit}+$/u console.log(r.test('0123456789ABCDEF'))
äžèšãšåãæ¹æ³ã§äœ¿çšãããä»ã®å€ãã®åæ§ã®ããããã£ããããŸãã ãããã®äžã«ã¯ã
Uppercase
ã
Lowercase
ã
White_Space
ã
Alphabetic
ã
Emoji
ãŸãã
ããšãã°ã
Script
ããããã£ã䜿çšããŠãæååã§äœ¿çšãããã¢ã«ãã¡ããããæ±ºå®ããæ¹æ³ã次ã«ç€ºããŸãã ããã§ã¯ãã®ãªã·ã£èªã®ã¢ã«ãã¡ãããã®äœ¿çšã«ã€ããŠæååã確èªããŸãã
const r = /^\p{Script=Greek}+$/u console.log(r.test('ελληΜικά'))
ãããã®ããããã£ã®è©³çްã«ã€ããŠã¯ã
ãã¡ããã芧ãã ãã ã
ååä»ãã°ã«ãŒã
ES2018ã§ãã£ããã£ãããæåã°ã«ãŒãã«ã¯ååãä»ããããšãã§ããŸãã å€èŠ³ã¯æ¬¡ã®ãšããã§ãã
const re = /(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})/ const result = re.exec('2015-01-02') console.log(result)
ååä»ãã°ã«ãŒãã䜿çšããªããšãåãããŒã¿ã¯é
åèŠçŽ ãšããŠã®ã¿äœ¿çšå¯èœã«ãªããŸãã
const re = /(\d{4})-(\d{2})-(\d{2})/ const result = re.exec('2015-01-02') console.log(result)
æ£èŠè¡šçŸãã©ã°
s
ãã©ã°ã䜿çšãããšãæåã«ãªã
.
ïŒããªãªãïŒã¯ããšããããæ¹è¡æåãšäžèŽããŸãã ãã®ãã©ã°ããªããšãããªãªãã¯æ¹è¡ãé€ããã¹ãŠã®æåã«äžèŽããŸãã
console.log(/hi.welcome/.test('hi\nwelcome'))
ãŸãšã
ãã®è³æã§ã
ãã® JavaScriptããã¥ã¢ã«ã®ç¿»èš³ã®åºçãå®äºããŸãã ãããã®åºçç©ãã以åã«JavaScriptã䜿çšããããšããªã人ã§ãããã®èšèªã§ã®ããã°ã©ãã³ã°ã®ç¬¬äžæ©ãèžã¿åºãã®ã«åœ¹ç«ã€ããšãé¡ã£ãŠããŸãã
芪æãªãèªè
ïŒ ä»¥åã«JSã§äœæããããšããªãããã®ã¬ã€ãã§ãã®èšèªããã¹ã¿ãŒããããšãããå Žåã¯ãææ³ããèãããã ããã
