プログラミングで飯を食え。腕をあげたきゃ備忘録!

PHP、JavaScript、HTML5、CSS3などWEB系言語を中心に基本テク、備忘録をまとめます。Android、Iphoneアプリ開発についても!

jQueryでPHPのhtmlspecialchars()使う方法!

サクウェブTVはコチラ↓↓↓
サクウェブTV

WEB開発を行っているサーバサイドではなく、クライアントサイドのJavaScriptでフォームの入力値をエスケープしたい場合が意外に多くあります。

PHPではhtmlspecialchars()というメソッドでタグなどをエスケープしてタグを無効化できますが、Javascriptにはそれがなく、正規表現を用いてreplace()するなどの方法になってきます。

ただPHPJavascriptで開発を行う場合できれば同じメソッドがあるとやりやすいと思い作ってみました。

以下をhtmlspecialchars.jsとして保存してください。

htmlspecialchars.js
(function($) {
    $.extend({
		htmlspecialchars: function htmlspecialchars(ch){
				ch = ch.replace(/&/g,"&") ;
			    ch = ch.replace(/"/g,""") ;
			    ch = ch.replace(/'/g,"'") ;
			    ch = ch.replace(/</g,"&lt;") ;
			    ch = ch.replace(/>/g,"&gt;") ;
			    return ch ;
			}
	});
})(jQuery);

もちろんこんな風にプラグイン化する必要はありませんが、自作プラグインなどに追加しておくと何かと便利ですのでこうしてます。

そして以下のように読み込んで、

<script type="javascript" src="jquery.js"></script>
<script type="javascript" src="htmlspecialchars.js"></script>
<script type="javascript" src="script.js"></script>

あとはscript.jsなどを用意して以下のように使用してください。

var escaped = $.htmlspecialchars("<script>alert("ほげほげ")</script>");

これでscriptタグなどは無効化できます。