/*
 * 汎用関数定義
 * 関東図書株式会社 / nunokawa@kanto-t.jp
 *
 * Encoding  : UTF-8, LF
 * Date      : 2009-09-18
 */


/* 特殊文字をHTMLエンティティに変換 *******************************************/
String.prototype.xhe=function () {
	var str=this;

	str=str.replace(/&/g,"&amp;");
	str=str.replace(/&amp;amp;/g,"&amp;");
	str=str.replace(/"/g,"&quot;");
	str=str.replace(/'/g,"&#039;");
	str=str.replace(/</g,"&lt;");
	str=str.replace(/>/g,"&gt;");

	return str;
}



/* 文字列の形式確認 ***********************************************************/
String.prototype.valueCheck=function (_type) {
	var str=this;

	// 正規表現
	// メールアドレス
	var re_email=/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i;
	// 電話番号
	var re_phone=/^[0-9-()]{6,12}$/;
	// 漢字があるかどうか
	var re_kanji=/[\u3400-\u4DBF\u4E00-\u9FFF\uD840-\uD87F\uDC00-\uDFFF\uF900-\uFAFF]+/;
	// ひらがながあるかどうか
	var re_hiragana=/[ぁ-ん]/;
	// カタカナがあるかどうか
	var re_hiragana=/[ァ-ン]/;


	if (_type == 'email') {
	 	if (str.match(re_email)) {
	 		return true;
	 	}
	} else if (_type == 'phone') {
	 	if (str.match(re_phone)) {
	 		return true;
	 	}
	} else if (_type == 'kanji') {
	 	if (str.match(re_kanji)) {
	 		return true;
	 	}
	} else if (_type == 'hiragana') {
	 	if (str.match(re_hiragana)) {
	 		return true;
	 	}
	} else if (_type == 'katakana') {
	 	if (str.match(re_katakana)) {
	 		return true;
	 	}
	// _typeを指定しない場合は数値かどうかを調べる
	} else {
		if (!isNaN(this)) {
			return true;
		}
	}

	return false;
}



