予測が非常に困難な状況になるため、これらの状況を確実に回避する必要があります。
関数に追加の変数入力を追加してみてください。
function someFunction(userInput, isEncoded){
//Add some conditional logic based on isEncoded
$someJqueryElement.text(userInput);
}
fckEditor などの製品を見ると、ソースを編集するか、リッチ テキスト エディターを使用するかを選択できます。これにより、自動エンコード検出の必要がなくなります。
それでも html エンコーディング文字の自動検出に固執する場合は、 index of を使用して特定のキー フレーズが存在することを確認することをお勧めします。
str.indexOf('<') !== -1
上記の例では、< 文字が検出されます。
~~~この行の下に編集後に追加された新しいテキスト.~~~
最後に、この回答を見ることをお勧めします。彼らは、デコード機能を使用して長さを検出することを提案しています。
var string = "Your encoded & decoded string here"
function decode(str){
return decodeURIComponent(str).replace(/</g,'<').replace(/>/g,'>');
}
if(string.length == decode(string).length){
// The string does not contain any encoded html.
}else{
// The string contains encoded html.
}
繰り返しになりますが、ユーザーが特別にエンコードされた文字を入力してプロセスを偽装するという問題が残っていますが、それが html エンコーディングです。したがって、これらの文字シーケンスのいずれかが出現したらすぐに html エンコーディングを想定するのが適切です。