Comment faire pour supprimer tous les caractères spéciaux à l'exception des nombres et de l'espace dans une chaîne de caractères à l'aide de JavaScript?

Je suis l'élaboration d'un Phonegap application Android. Maintenant je veux passer certains paramètres d'une page à une autre page html. Je n'utilise pas de serveur de côté les méthodes. Dans la deuxième page, je veux obtenir tous les paramètres passés à partir de la première page à l'aide de JavaScript.

Pour exemple voici un URL:

file:///C:/Users/dell/Projects/testapp1/search_result.html?searchstr=word1+*%26^+word2+3+word3+%40%23&city=city&showdishesnearby=false

Ci-dessous la fonction utilisée pour extraire chacune des valeurs de paramètres:

function getUrlVars() {
    var vars = {};
    var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi,
        function (m, key, value) {
            vars[key] = value;
        });
    return vars;
}

searchString = getUrlVars()["searchstr"]; //this is how I call above function to get value of passed particular parameter

Maintenant, je veux supprimer tous les caractères spéciaux à l'exception des nombres et de l'espace blanc dans la variable searchString.

J'ai utilisé le code ci-dessous:

searchString = searchString.replace(/[^a-zA-Z ]/g, " ");

mais qui ne résout pas mon problème. Comment faire pour supprimer tous les caractères spéciaux à l'exception des nombres et de l'espace dans une chaîne de caractères à l'aide de JavaScript?

  • str.replace(/[^\d\s]+/, '').replace(/\s{2,}/, ' ')
  • Désolé M. falsetru votre solution ne fonctionne pas pour moi. Veuillez vérifier la question, j'ai donné plus d'explications sur le problème.