まる囲い数字や半角カナを置換するプラグイン

作ってもすぐどこかに埋もれるのでこちらにメモ

(function($j){
	$j.ex = $j.ex || {};
	$j.ex.swapString = function(val,c){
		var c = $j.extend($j.ex.swapString.cfg,c||{});
		for(i = 0; i < c.from.length; i++){
			var reg = new RegExp(c.from[i],"g")
			val = val.replace(reg, c.to[i]);
		}
		return val;
	}

	var c = $j.ex.swapString.cfg = {
		from : [],
		to : [],
		_kanaString : {
			from : ['ヴ','ガ','ギ','グ','ゲ','ゴ','ザ','ジ','ズ','ゼ','ゾ','ダ','ヂ','ヅ','デ','ド','バ','ビ','ブ','ベ','ボ','パ','ピ','プ','ペ','ポ','゙','。','「','」','、','・','ヲ','ァ','ィ','ゥ','ェ','ォ','ャ','ュ','ョ','ッ','ー','ア','イ','ウ','エ','オ','カ','キ','ク','ケ','コ','サ','シ','ス','セ','ソ','タ','チ','ツ','テ','ト','ナ','ニ','ヌ','ネ','ノ','ハ','ヒ','フ','ヘ','ホ','マ','ミ','ム','メ','モ','ヤ','ユ','ヨ','ラ','リ','ル','レ','ロ','ワ','ン','゚'],
			to : ['ヴ','ガ','ギ','グ','ゲ','ゴ','ザ','ジ','ズ','ゼ','ゾ','ダ','ヂ','ヅ','デ','ド','バ','ビ','ブ','ベ','ボ','パ','ピ','プ','ペ','ポ','゛','。','「','」','、','・','ヲ','ァ','ィ','ゥ','ェ','ォ','ャ','ュ','ョ','ッ','ー','ア','イ','ウ','エ','オ','カ','キ','ク','ケ','コ','サ','シ','ス','セ','ソ','タ','チ','ツ','テ','ト','ナ','ニ','ヌ','ネ','ノ','ハ','ヒ','フ','ヘ','ホ','マ','ミ','ム','メ','モ','ヤ','ユ','ヨ','ラ','リ','ル','レ','ロ','ワ','ン','゜']
		},
		_circleNumber : {
			from : ['①','②','③','④','⑤','⑥','⑦','⑧','⑨','⑩'],
			to : ['1)','2)','3)','4)','5)','6)','7)','8)','9)','10)']
		}
	}

	c.from = c.from.concat(c._circleNumber.from);
	c.to = c.to.concat(c._circleNumber.to)
	c.from = c.from.concat(c._kanaString.from);
	c.to = c.to.concat(c._kanaString.to)


	$j.fn.exSwapString = function(){
		var targets = this;
		targets.each(function(idx){
			var target = targets.eq(idx);
			target.val($j.ex.swapString(target.val()));
		})
	}

})(jQuery);

以下記述で input 要素に入力の際に自動置換される。

$j(function(){
	$('textarea,input').blur(function(){
		$(this).exSwapString();
	});
});