Je peux supprimer toutes les périodes d'une chaîne à l'aide de ce code:
p>
const usage = "I was sent... to protect you.".replace(/\s?\.\.\.\s?/, " ... "); const rawUsage = usage.toLowerCase().replace(/\,|\?|\!|\:|\./g,''); // removes all dots console.log(rawUsage);
4 Réponses :
Votre cas pourrait être résolu de manière simple quelle que soit la regex. Ci-dessous une solution travaillée
p>
const usage = 'I was sent... to protect you.'
const res = usage
.replace('...', ' ... ')
.split(' ')
.filter(word => !!word) // reject empty word ('')
.join(' ')
console.log(res)Essayez ceci:
p>
const usage = "I was sent... to protect you.";
const rawUsage = usage.toLowerCase().split(/\s?\.\.\.\s?/).map((s)=>{return s.replace(/\./g,"");}).join(" ... ");
console.log(rawUsage);Vous pouvez correspondre et capturer le motif à trois points et le restaurer dans le résultat si ce groupe correspond, sinon, supprimez la correspondance:
p>
const usage = "I was sent... to protect you.".replace(/\s*\.{3}\s*/, " ... ");
const rawUsage = usage.toLowerCase().replace(/(\s\.{3}\s)|[,?!:.]/g, (x,y) => y || x );
console.log(rawUsage) Vous pouvez utiliser des regards aussi. Quelque chose comme: explication de la regex ci-dessus: strong> p> Vous pouvez trouver la démo de la regex ci-dessus dans ici. forte> p> p>
(? strong> - représente un aspect positif correspondant à un espace blanche ou un caractère de mot avant code >. li>
(?: \. {1,2} | \. {4,}) code> strong> - représente une correspondance de groupe non capturant code>. code > DOT 1, 2 fois ou 4 fois ou plus mais pas trois. li>
(? = [\ s \ w]) code> strong> - représente un aspect positif à l'avenir affirmant un espace blanche ou un caractère de mots après le code >. li>
ul> const regex = /(?<=[\s\w])(?:\.{1,2}|\.{4,})(?=[\s\w])/gm;
const str = `I was sent... to protect you.
I was sent.. to protect you.
I was sent.... to protect you.
I was sent ... to protect you.
`;
const subst = ``;
// The substituted value will be contained in the result variable
const result = str.replace(regex, subst);
console.log(result);
/ \. {3} / g code> puis recherche... code>