JSFiddle - React, Tailwind, and code Playground
by Alphonsio
JavaScript
const regex = /^(.*?)(?:\.([^.]+))?$/
console.log (regex.exec('filename.txt')) // ["filename.txt", "filename", "txt"]
console.log (regex.exec('file.name.txt')) // ["file.name.txt", "file.name", "txt"]
console.log (regex.exec('file.name.with.several.dots.txt')) // ["file.name.txt", "file.name", "txt"]
console.log (regex.exec('filename')) // ["filename", "filename", undefined]
console.log (regex.exec('file.name')) // ["file.name", "file", "name"]
console.log (regex.exec('.htaccess')) // [".htaccess", "", "htaccess"]
console.log (regex.exec('')) // ["", "", undefined]