J'ai ci-dessous la situation en javascript. Supposons que l'utilisateur saisisse "I am Shruti ", donc je dois le faire "I am Shruti" signifie un seul espace entre les deux. Espace final que je peux supprimer en utilisant trim() mais je ne sais pas comment puis-je réduire plusieurs espaces et les réduire à un espace intermédiaire.

I / p: "I am Shruti " o / p "I am Shruti" // exactement un espace entre et pas d'espace à la fin

I / p: "I am Shruti " o / p "I am Shruti" // exactement un espace entre et pas d'espace à la fin

3
Shruti Sharma 2 juin 2020 à 12:17

5 réponses

Cela devrait aider:

let string = '   string    with spaces   :D ';

// match any instance of 1 or more space character, and replace
// -> with 1 space, plus remove beginning & trailing spaces
let cleanedString = string.replace(/ +/g,' ').trim()

console.log(cleanedString)
0
Blundering Philosopher 2 juin 2020 à 09:26

Je l'ai fait comme ceci:

Je le divise, et filtre chaque caractère qui n'est pas un espace blanc et rejoins le reste avec un espace blanc

const string = "I   have  a   lot of   whitespace";

let result = string.split(" ").filter(char => char !== "").join(" ");

console.log(`|${result}|`);
0
Ifaruki 2 juin 2020 à 09:31

Vous pouvez utiliser remplacer par une expression régulière et couper:

var str = "   I      am      Shruti     ".trim().replace(/\s+/g, ' ');
// "I am Shruti"
-1
Ki Jéy 2 juin 2020 à 09:20

Vous pouvez utiliser regex .replace() et trim() méthode pour cela.

Explication de l'expression régulière:

\s Correspond à n'importe quel caractère d'espacement (espaces, tabulations, sauts de ligne).

+ Correspond à 1 ou plusieurs des jetons précédents.

const string = "    I   have  a   lot of   whitespace    ";
const newString = string.trim().replace(/\s+/g, " ");

console.log(newString);
0
Daan 2 juin 2020 à 09:25

Vous pouvez utiliser replace avec une expression régulière disant "deux espaces ou plus", en les remplaçant par un espace. Combinez cela avec trim pour vous débarrasser de l'espace unique à la fin:

const updated = original.replace(/ {2,}/g, " ").trim();

Exemple en direct:

const original = "I    am    Shruti ";
const updated = original.replace(/ {2,}/g, " ").trim();
console.log(`[${updated}]`);

Vous pouvez également le faire en un seul passage sans trim en utilisant une anticipation pour rechercher un espace suivi d'un autre espace ou de la fin de l'entrée, en le remplaçant par rien:

const updated = original.replace(/ (?= |$)/g, "");

Exemple en direct:

const original = "I    am    Shruti ";
const updated = original.replace(/ (?= |$)/g, "");
console.log(`[${updated}]`);
2
T.J. Crowder 2 juin 2020 à 09:27