フォーカスアウト時に文字列置換

jQueryでフォーカスアウト時に文字列を全角/半角置換、プラグイン

jQuery

$(function () { $('input[name=space]').focusout(function(){ var str = $(this).val(); // 前後のスペース除去 str = $.trim(str); $(this).val(str); }); $('input[name=space2]').focusout(function(){ var str = $(this).val(); // 文中のスペース除去 str = str.replace(/[\s]/g, ''); $(this).val(str); }); $('textarea[name=newline]').focusout(function(){ var str = $(this).val(); // 分始/文末の改行除去 str = str.replace(/(^[\s]+|[\s]+$)/, ''); $(this).val(str); }); $('input[name=num_char]').focusout(function(){ var str = $(this).val(); // 半角数字へ置換 str = str.replace(/[0-9]/g, function(str) { return String.fromCharCode(str.charCodeAt(0) - 0xFEE0); }); $(this).val(str); }); $('input[name=alphanum]').focusout(function(){ var str = $(this).val(); // 半角英数字へ置換 str = str.replace(/[A-Za-z0-9]/g, function(str) { return String.fromCharCode(str.charCodeAt(0) - 0xFEE0); }); $(this).val(str); }); $('input[name=symbol]').focusout(function(){ var str = $(this).val(); // 半角記号へ置換 str = str.replace(/[!-/:-@[-`{-~]/g, function(str) { return String.fromCharCode(str.charCodeAt(0) - 0xFEE0); }); $(this).val(str); }); $('input[name=hiragana]').focusout(function(){ var str = $(this).val(); // ひらがなをカタカナへ置換 str = str.replace(/[ぁ-ん]/g, function(str) { return String.fromCharCode(str.charCodeAt(0) + 96); }); $(this).val(str); }); $('input[name=katakana]').focusout(function(){ var str = $(this).val(); // 半角カタカナを全角カタカナへ var h = ['ガ', 'ギ', 'グ', 'ゲ', 'ゴ', 'ザ', 'ジ', 'ズ', 'セ', 'ゾ', 'ダ', 'ヂ', 'ヅ', 'デ', 'ド', 'バ', 'ビ', 'ブ', 'ベ', 'ボ', 'パ', 'ピ', 'プ', 'ペ', 'ポ', 'ヴ', 'ァ', 'ア', 'ィ', 'イ', 'ゥ', 'ウ', 'ェ', 'エ', 'ォ', 'オ', 'カ', 'キ', 'ク', 'ケ', 'コ', 'サ', 'シ', 'ス', 'セ', 'ソ', 'タ', 'チ', 'ッ', 'ツ', 'テ', 'ト', 'ナ', 'ニ', 'ヌ', 'ネ', 'ノ', 'ハ', 'ヒ', 'フ', 'ヘ', 'ホ', 'マ', 'ミ', 'ム', 'メ', 'モ', 'ャ', 'ヤ', 'ュ', 'ユ', 'ョ', 'ヨ', 'ラ', 'リ', 'ル', 'レ', 'ロ', 'ワ', 'ヲ', 'ン']; var z = ['ガ', 'ギ', 'グ', 'ゲ', 'ゴ', 'ザ', 'ジ', 'ズ', 'セ', 'ゾ', 'ダ', 'ヂ', 'ヅ', 'デ', 'ド', 'バ', 'ビ', 'ブ', 'ベ', 'ボ', 'パ', 'ピ', 'プ', 'ペ', 'ポ', 'ヴ', 'ァ', 'ア', 'ィ', 'イ', 'ゥ', 'ウ', 'ェ', 'エ', 'ォ', 'オ', 'カ', 'キ', 'ク', 'ケ', 'コ', 'サ', 'シ', 'ス', 'セ', 'ソ', 'タ', 'チ', 'ッ', 'ツ', 'テ', 'ト', 'ナ', 'ニ', 'ヌ', 'ネ', 'ノ', 'ハ', 'ヒ', 'フ', 'ヘ', 'ホ', 'マ', 'ミ', 'ム', 'メ', 'モ', 'ャ', 'ヤ', 'ュ', 'ユ', 'ョ', 'ヨ', 'ラ', 'リ', 'ル', 'レ', 'ロ', 'ワ', 'ヲ', 'ン']; for (i = 0; i <= h.length; i++) { str = str.split(h[i]).join(z[i]); } $(this).val(str); }); $('input[name=capital]').focusout(function(){ var str = $(this).val(); // 大文字に置換 str = str.toUpperCase(); $(this).val(str); }); $('input[name=lower]').focusout(function(){ var str = $(this).val(); // 小文字に置換 str = str.toLowerCase(); $(this).val(str); }); });

サンプル

jQuery Plugin

プラグイン作成しました。

jquery_plugin_filter.zip

v 1.0.3 : 小数切り捨てを追加しました。
v 1.0.2 : 半角数字以外を削除、全角カタカナ以外を削除を追加しました。
v 1.0.1 : 連続したスペースを半角スペースへ置換を追加しました。
v 1.0.0 : Form Filter / jQuery Plugin 作成しました。

動作環境

jQuery 1.11.3, 2.1.4
Chrome 41, Firefox 39, Internet Explorer 11, Opera 28, Safari 5

詳細はZipに梱包されているファイルをご確認ください。

最新の記事

プロフィール

流されるままにウェブ業界で仕事しています。
主にLAPP環境でPHPを書いています。
最近はjQueryをよく書いています。