Artboard 16light, inspiration, solution, idea, innovation,Google Sheets iconSwift icon
Published at
Updated at
Reading time
2min
This post is part of my Today I learned series in which I share all my web development learnings.

I spoke at EnterJS a few days ago and Brian Terlson gave an excellent keynote on ES2017 and the future of JavaScript. The talk included also upcoming regular expression features that may be added to the spec in ES2017. One of these new features is the s or dotAll flag for regular expressions. So why do we need this?

It turns out that the . meta character in regular expressions is not matching all characters. You're surprised? I was, too. Let me show you some examples.

/a.b/.test('a\nb');     // false
/a.b/.test('a\rb');     // false
/a.b/.test('a\u2028b'); // false
/a.b/.test('a\u2029b'); // false

The problem with this unexpected behavior is that it can result in hard to spot bugs. The spec proposal introduces a new /s flag which intents to fix this behavior.

/a.b/s.test('a\nb');     // true
/a.b/s.test('a\rb');     // true
/a.b/s.test('a\u2028b'); // true
/a.b/s.test('a\u2029b'); // true

What's the browser support of the dotAll flag? πŸ‘‡

MDN Compat Data (source)
Browser support info for dotAll flag
chromechrome_androidedgefirefoxfirefox_androidsafarisafari_iossamsunginternet_androidwebview_android
62NeinNon78NΓΆ12NeinNopeNei

Related Topics

Related Articles