2010-12-27 3 views
4

Ok, j'ai ces prototypes de cordes à travailler, cependant, je ne comprends pas ce qu'ils font exactement.Javascript remplace les caractères spéciaux avec des chaînes vides

String.prototype.php_htmlspecialchars = function() 
{ 
return this.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;'); 
} 

String.prototype.php_unhtmlspecialchars = function() 
{ 
return this.replace(/&quot;/g, '"').replace(/&gt;/g, '>').replace(/&lt;/g, '<').replace(/&amp;/g, '&'); 
} 

String.prototype.php_addslashes = function() 
{ 
return this.replace(/\\/g, '\\\\').replace(/'/g, '\\\''); 
} 

String.prototype._replaceEntities = function(sInput, sDummy, sNum) 
{ 
return String.fromCharCode(parseInt(sNum)); 
} 

String.prototype.removeEntities = function() 
{ 
return this.replace(/&(amp;)?#(\d+);/g, this._replaceEntities); 
} 

String.prototype.easyReplace = function (oReplacements) 
{ 
var sResult = this; 
for (var sSearch in oReplacements) 
    sResult = sResult.replace(new RegExp('%' + sSearch + '%', 'g'), oReplacements[sSearch]); 

return sResult; 
} 

Fondamentalement, ce que je dois faire est de remplacer toutes les occurrences de guillemets doubles ("),>, <, apostrophes ('), etc etc .. En gros la même chose que htmlentities() en php changements, mais je dois les remplacer par une chaîne vide, de sorte qu'ils sont supprimés du texte

Puis-je utiliser l'une des fonctions ci-dessus? Si non, comment puis-je l'accomplir en Javascript? Puis-je utiliser un remplacer sur la chaîne?

S'il vous plaît, quelqu'un, aidez-moi ici.Je place ce texte dans une boîte de sélection et sera entré dans la base de données lors de la soumission de la f orm. Cependant, j'utilise PHP pour supprimer tous ces caractères, cependant, j'ai du mal à trouver un moyen de le faire en Javascript.

Merci :)

+0

Quel est l'objectif? On dirait que vous voulez supprimer les tags, c'est-à-dire extraire le contenu du texte à partir du HTML, est-ce correct? – deceze

+0

Non, je permets aux utilisateurs de taper dans une zone de texte, et cela va dans la base de données, et la zone de texte est essentielle pour son entrée. Il vérifie si la boîte de sélection contient déjà ce texte. Il faut donc enlever les caractères spéciaux car je ne veux pas insérer dans la base de données la même valeur que celle qui existe déjà. – SoLoGHoST

+0

Cependant, assurez-vous de garder votre php décapage car il est très facile de contourner votre javascript pour injecter html directement dans votre base de données si vous ne testez pas sur le serveur – mplungjan

Répondre

10

Remove special characters (like !, >, ?, ., # etc.,) from a string using JavaScript:

var temp = new String('This is a te!!!!st st>ring... So??? What...'); 
document.write(temp + '<br>'); 
temp = temp.replace(/[^a-zA-Z 0-9]+/g,''); 
document.write(temp + '<br>'); 

jsFiddle

Edit:

Si vous ne souhaitez pas supprimer point de chaîne (.):

temp = temp.replace(/[^a-zA-Z 0-9.]+/g,''); 
+0

Merci, en utilisant votre méthode, je peux réellement définir mes propres personnages. C'est mieux que de retirer les entités. Merci :) Juste dû ajouter le '-' et le' _' également. – SoLoGHoST

Questions connexes