const regex = /^(?![\s'-])(?:[\s'-]{0,1}[\p{L}])+$/img;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('^(?![\\s\'-])(?:[\\s\'-]{0,1}[\\p{L}])+$', 'img')
const str = `Masion
Délire
Vértige
Ma-Maison-Heueuse
Libre de Vivre
Combat d'El Toro
Mire er
L'école des Mimosa
sephorù
Владимир
Владими ладим
sephorù
中華人民共和國
Nippon-koku ou Nihon-koku
日本国
جزيرة العرب
Sephora55
55789
?yuiy
(hjk)
sephoraö
`;
const subst = ``;
// The substituted value will be contained in the result variable
const result = str.replace(regex, subst);
console.log('Substitution result: ', result);
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for JavaScript, please visit: https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions