2010-12-27 31 views
4

これらの文字列のプロトタイプを使用していますが、正確に何をするのか分かりません。Javascript空の文字列で特殊文字を置き換えます。

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

基本的に、私は何をする必要があることは二重引用符のすべてのインスタンス( ")、>、<、単一引用符( ')を置き換えている、などなど。基本的には同じものが、php中にhtmlentities()変更が必要ですが、空の文字列で置き換えてテキストから削除する必要があります。

上記の関数を使用することはできますか?そうでない場合は、JavaScriptでどのようにすることができますか?文字列を置き換えますか?

私はここにお手伝いします。このテキストを選択ボックスに入れて、fの提出時にデータベースに入力されます。 orm。しかし、これらの文字をすべて削除するためにPHPを使用していますが、Javascriptでこれを行う方法を見つけるのが難しいです。

感謝:)

+0

目的は何ですか?タグを削除する、つまりHTMLからテキストコンテンツを抽出する、正しいと思うように聞こえますか? – deceze

+0

いいえ、私はユーザーがテキストボックスに入力することを許可しており、これはデータベースに入り、テキストボックスは入力にとって重要です。選択ボックスにすでにこのテキストが含まれているかどうかを確認します。だから私はデータベースに既にそこにあるのと同じ値を挿入したくないので、特別な文字を取り除く必要があります。 – SoLoGHoST

+0

しかし、サーバー上でテストしないと、あなたのデータベースに直接htmlを挿入するためにjavascriptをバイパスするのが非常に簡単なので、あなたもPHPを剥奪しておいてください。 – mplungjan

答えて

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

編集:

あなたは、文字列からドットを削除したくない場合は、次の

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

おかげで、あなたの方法を使用して、私は実際に自分の文字を定義することができます。これはエンティティを取り除くよりも優れています。ありがとう:)ちょうど ' - 'と '_'を加えなければなりませんでした。 – SoLoGHoST

関連する問題