258 votes

Supprimez tous les caractères spéciaux, sauf l'espace, d'une chaîne de caractères à l'aide de JavaScript.

Je veux supprimer tous les caractères spéciaux, sauf l'espace, d'une chaîne de caractères en utilisant JavaScript.

Par exemple, abc's test#s devrait donner comme résultat abcs tests .

10voto

Mozfet Points 269

J'ai essayé la solution très créative de Seagul, mais j'ai constaté qu'elle traitait également les chiffres comme des caractères spéciaux, ce qui ne répondait pas à mes besoins. Voici donc mon adaptation (sans risque) de la solution de Seagul...

//return true if char is a number
function isNumber (text) {
  if(text) {
    var reg = new RegExp('[0-9]+$');
    return reg.test(text);
  }
  return false;
}

function removeSpecial (text) {
  if(text) {
    var lower = text.toLowerCase();
    var upper = text.toUpperCase();
    var result = "";
    for(var i=0; i<lower.length; ++i) {
      if(isNumber(text[i]) || (lower[i] != upper[i]) || (lower[i].trim() === '')) {
        result += text[i];
      }
    }
    return result;
  }
  return '';
}

8voto

const str = "abc's@thy#^g&test#s";
console.log(str.replace(/[^a-zA-Z ]/g, ""));

7voto

Shrinivasan Points 151

Essayez d'utiliser celui-ci

var result= stringToReplace.replace(/[^\w\s]/g, '')

[^] est pour la négation, \w para [a-zA-Z0-9_] les caractères des mots et \s pour l'espace, /[]/g pour le monde

0voto

hassanf1 Points 1

Le point (.) ne doit pas être considéré comme spécial. J'ai ajouté une condition OR à la réponse de Mozfet & Seagull :

function isNumber (text) {
      reg = new RegExp('[0-9]+$');
      if(text) {
        return reg.test(text);
      }
      return false;
    }

function removeSpecial (text) {
  if(text) {
    var lower = text.toLowerCase();
    var upper = text.toUpperCase();
    var result = "";
    for(var i=0; i<lower.length; ++i) {
      if(isNumber(text[i]) || (lower[i] != upper[i]) || (lower[i].trim() === '') || (lower[i].trim() === '.')) {
        result += text[i];
      }
    }
    return result;
  }
  return '';
}

0voto

Muneeb Ahmed Points 31

Essayez ça :

const strippedString = htmlString.replace(/(<([^>]+)>)/gi, "");
console.log(strippedString);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X