Javascript remplacement des caractères *, + et / au sein d'une chaîne

Bon, je suis en train de travailler sur la façon simpliste de mimer la fonction de PHP avec la fonction urlencode() avec JS s escape() et une chaîne de caractères de remplacement. Je suis purement regardant les caractères du clavier, de sorte qu'aucune ASCII ou Unicode des caractères. Le problème que je rencontre est que les caractères spécifiques *, +, /et tous ont des significations spéciales en RegExp, et de voir que JavaScript Chaîne méthodes de l'Objet de l'utiliser RegExp paramètres, je ne peux pas entièrement répliquer PHP de la fonction urlencode(). Ainsi, comment pourrait-on gérer pour effectuer un remplacement de ces caractères à l'intérieur d'une chaîne à l'aide de JS?

Informations d'arrière-plan:

escape() les écarts avec la fonction urlencode():

@: pas converti, devrait être %40

&: considéré comme une entité html, donc s'est échappée comme l' %26amp%3B plutôt que %26

*: pas converti, devrait être %2A

+: pas converti, devrait être %2B

/: pas converti, devrait être %2F

<: considéré comme une entité html, donc s'est échappée comme l' %26lt%3B plutôt que %3C

>: considéré comme une entité html, donc s'est échappée comme l' %26gt%3B plutôt que %3E

Entité HTML conversion est aussi simple que

str.replace(/&amp;/g, '%26').replace(/&lt;/g, '%3C').replace(/&gt;/g, '%3E');

et @ peut être remplacée, car elle n'est pas réservée RegExp caractère.

* représente la {0} conditionnelle

+ représente la {1} conditionnelle

/ est la base de RegExp tag caractère

Je vous remercie pour votre temps.

InformationsquelleAutor Jack Orjill | 2010-09-03