まる囲い数字や半角カナを置換するプラグイン
作ってもすぐどこかに埋もれるのでこちらにメモ
(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(); }); });