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
.
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
.
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 '';
}
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 '';
}
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.