Skip to content

Instantly share code, notes, and snippets.

@nabettu
Created November 18, 2015 08:26
Show Gist options
  • Save nabettu/0e19333d05f95ec0646e to your computer and use it in GitHub Desktop.
Save nabettu/0e19333d05f95ec0646e to your computer and use it in GitHub Desktop.
ひらがな以外を除外する
var familyname = "もじれつ";
/**
* 入力が許容された文字列かチェック
*/
var oklist = [];
$.each( familyname.split(''), function( i, value ){
var checked = inputValid( value );
if( checked ){
// OK, push
oklist.push( checked );
} else {
familyname = '';
}
if( oklist.length > 0 ){
// 0 文字以上か, 有れば連結
familyname = oklist.join('');
} else {
familyname = '';
}
});
/**
* 文字列のバリデーション
* @param {string} value 文字
*/
function inputValid( value ){
var return_string = value;
// ひらがなであれば返す
if( value.match(/^[\u3040-\u309F]+$/gi) ){
// 小書き文字を大文字へ(ぁぃぅぇぉゃゅょゎぉっ)
if( value.match(/^[\u3041\u3043\u3045\u3047\u3049\u3083\u3085\u3087\u308e\u3049\u3063]+$/gi) ){
return_string = String.fromCharCode( value.charCodeAt(0) + 1 );
}
// を→お
if( value.match(/^[\u3092]+$/gi) ){
return_string = 'お';
}
// ゔ→ぶ
if( value.match(/^[\u3094]+$/gi) ){
return_string = 'ぶ';
}
// ゑ→え ゐ→い
if( value.match(/^[\u3091]+$/gi) ){
return_string = 'え';
}
if( value.match(/^[\u3090]+$/gi) ){
return_string = 'い';
}
return return_string;
// カタカナにマッチするか
} else if( value.match(/[\u30a1-\u30f6]+$/gi) ){
// ヴ→ぶ
if( value.match(/^[\u30f4]+$/gi) ){
return_string = 'ぶ';
return return_string;
}
// 小文字例外(ァィゥェォャュョヮォッ)→変換
if( value.match(/^[\u30a1\u30a3\u30a5\u30a7\u30a9\u30e3\u30e5\u30e7\u30ee\u30a9\u30c3]+$/gi) ){
return_string = String.fromCharCode( value.charCodeAt(0) - 0x60 );
return_string = String.fromCharCode( value.charCodeAt(0) + 1 );
return return_string;
}
// 小文字例外(ヵㇰヶㇱㇲㇳㇴㇵㇶㇷㇷ゚ㇸㇹㇺㇻㇼㇽㇾㇿ)→許可しない
if( value.match(/^[\u30f5\u31f0\u30f6\u31f1\u31f2\u31f3\u31f4\u31f5\u31f6\u31f7\u31f7\u309a\u31f8\u31f9\u31fa\u31fb\u31fc\u31fd\u31fe\u31ff]+$/gi) ){
//return_string = String.fromCharCode( value.charCodeAt(0) + 1 );
return false;
}
// カタカナは変換
return_string = String.fromCharCode( value.charCodeAt(0) - 0x60 );
return return_string;
//それ以外
} else {
return false;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment