Artboard 16light, inspiration, solution, idea, innovation,ionicons-v5_logosGoogle Sheets iconSwift icon
Published at
Updated at
Reading time
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 "dotall" 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

Was this TIL post helpful?
Yes? Cool! You might want to check out Web Weekly for more quick learnings. The last edition went out 11 days ago.

Related Topics

Related Articles