//********************************************** // JavaScript commoncheck.js // 2003/03/05 //********************************************** //********************************************** // 許容文字定義 //********************************************** var STRZenKana = "アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲンァィゥェォッャュョガギグゲゴザジズゼゾダヂヅデドバビブベボパピプペポヴー−"; // O751 20030926 村上 var STRZenKana2 = "ガギグゲゴザジズゼゾダヂヅデドバビブベボパピプペポヴアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲンー−―!#$%&()*+,−./:;<=>?@「」^_{|}〜ッャュョァィゥェォ"; var STRZenKana2byte = "ガギグゲゴザジズゼゾダヂヅデドバビブベボパピプペポヴ"; // 半角にすると2バイトになる文字 var STRZenNumber = "0123456789"; var STRZenAlp = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; var STRMail = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@._-"; var STRHanKana = "アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワオン゙゚ァィゥェォッャュョー-。「」、・ヲ"; //********************************************** // アラートメッセージ定義 //********************************************** WSN1002 = "で入力してください。"; WSN1003 = "の範囲で入力してください。"; WSN1004 = "全角で入力してください。"; WSN1005 = "全角カタカナで入力してください。"; WSN1006 = "半角英字で入力して下さい。"; WSN1007 = "半角数字で入力してください。"; WSN1008 = "半角英数字で入力してくだいさい。"; WSN1009 = "mailアドレスが正しくありません。"; WSN1013 = "が選択されていません。"; WSN1014 = "が入力されていません。"; WSN1015 = "全角カタカナもしくは数字で入力してください。"; WSN1016 = "暗証番号に「0000」は使用できません。"; WSN1017 = "生年月日が正しく入力されていません。"; WSN1019 = "金融機関名が入力されていません。\n金融機関検索を使って入力してください。"; WSN1020 = "カード情報が選択されていません。"; WSN1021 = "暗証番号が一致しません。"; WSN1026 = "住所検索がおこなわれていません。"; // O712対応 2003/06/18 市丸 WSN1033 = "卒業予定年月を正しく入力してください。"; //WSN1034 = "卒業予定(月)を正しく入力してください。"; WSN1035 = "mailアドレスが一致しません。"; WSN1036 = "電話番号の先頭には「0」を入れてください。"; WSN1037 = "家族カード1と2に同じ名前が入っています。"; WSN1038 = "mailアドレスの入力には以下の半角英数字、記号を使用している\nmailアドレスをご入力ください。\n\"a〜z\" , \"A〜Z\" , \"0〜9\" , \"@ . _ - \""; WSN1039 = "通帳記号は「1XXX0」の形式で入力してください。"; WSN1040 = "口座番号「0000000」は存在しません。"; WSN1041 = "卒業予定(月)は1月から12月の範囲で入力してください。"; WSN1042 = "家族カード1と申込者の名前が同じです。"; WSN1043 = "家族カード2と申込者の名前が同じです。"; WSN1046 = "住所が正しくありません。再検索を行うか、\n手動入力ボタンを押して住所2に入力してください。"; WSN1047 = "字名丁名を選択してください。"; WSN1048 = "金融機関を選択して、支店検索ボタンを押してください。"; WSN1049 = "居住年数(月)は0〜11ヶ月の間で入力してください。"; WSN1050 = "勤続年数(年)は0〜99年の間で入力してください。"; WSN1051 = "勤続年数が0年の時、\n勤続年数(月)は1〜11ヶ月の間で入力してください。"; WSN1052 = "勤続年数(月)は0〜11ヶ月の間で入力してください。"; WSN1053 = "通帳番号は「XXXXXXX1」の形式で入力してください。"; WSN1054 = "郵便番号「000-XXXX」は存在しません"; WSN1055 = "郵便番号「XXXX-0000」は存在しません"; WSN1056 = "お名前ローマ字は \n「VISA」、「MASTER」は24字以内、「JCB」は22字以内 \n「ETCカード」は27字以内でご入力いただけませんと \nエンボス文字がカードの枠内に収まりません。" WSN1057 = "お名前ローマ字を変更する場合には \n本人情報訂正ボタンをクリックしてください。" WSN1058 = "全角カタカナ・英字で入力してください。"; WSN1059 = "年数は0〜99年の間で入力してください。"; WSN1060 = "年数(月)は0〜11ヶ月の間で入力してください。"; WSN1061 = "年数は0年1ヶ月以上で入力してください。"; WSN1062 = "が選択されていません。"; WSN1063 = "暗証番号は、生年月日・電話番号に関係ないものにしてください。"; WSN1064 = "E-mailアドレスと携帯電話mailアドレスが同じです。"; WSN1065 = "暗証番号に「9999」は使用できません。"; WSN1066 = "電話番号と携帯電話番号が同じです。"; WSN1067 = "振込をご希望の場合は、当日発行はできません。"; // コンプライアンス対応 2006/03/31 南條 WSN1068 = "歳未満の方はお申込みできません。"; WSN1069 = "「振込希望額」が「キャッシング希望額」を超えています。「キャッシング枠」を修正ください。"; WSN1070 = "「キャッシング枠」で“その他”を選択された場合は金額を入力ください。"; WSN1071 = "「キャッシング枠」で“その他”以外を選択された場合は金額の入力は不要です。"; WSN1072 = "「運転免許証交付有無」で“無”を選択された場合は「運転免許証番号」の入力は不要です。"; WSN1073 = "「運転免許証交付有無」で“有”を選択された場合は「運転免許証番号」を入力ください。"; // 378貸金業法4条(総量規制)対応 2010/04/15 円谷 WSN1074 = "「勤務区分」で“専業主婦(夫)”を選択された場合は、「年収」に“0”を入力ください。"; // 犯収法対応委 2013/01/24 風見 START WSN1078 = "その他ご職業が「有」の場合、ご職業を選択してください。"; WSN1079 = "カード入会目的を選択してください。"; //犯収法対応委 2013/01/24 風見 END // 076 WEB若年向けカード発行対応 2013/02/19 安藤 START WSN1082 = "当該カードは、"; WSN1083 = "歳以上の方はお申込できません。"; // 076 WEB若年向けカード発行対応 2013/02/19 安藤 END //************************************************** // エラーメッセージ取得用関数 // txt 呼び出すメッセージの入った変数を指定 //************************************************** function msg(txt){ return txt; } // NETSCAPEではswitch文で変数を使うと動作しないので全部ifで切り分けること var C_TYPE_NAME_KANJI = 1; // 氏名漢字 var C_TYPE_NAME_KANA = 2; // 氏名カナ var C_TYPE_NAME_ROMA = 3; // 氏名ローマ字 var C_TYPE_TEXT_NUMBER = 4; // 数値 var C_TYPE_TEXT_KANJI = 5; // 漢字 var C_TYPE_TEXT_KANA = 6; // カナ var C_TYPE_TEXT_NUMALP = 7; // 数値アルファベット // O751 20030926 村上 var C_TYPE_TEXT_KANA2 = 8; // カナ記号文字可 var C_TEL_NORMAL = 1; // 普通の電話番号 var C_TEL_MOBILE = 2; // 携帯電話 var C_TEL_NORMAL2 = 3; // 普通の電話番号(携帯番号もチェックする) //378貸金業法4条(総量規制)対応 2010/02/19 円谷 var C_TEL_NORMAL3 = 4; // 普通の電話番号(携帯電話チェック+電話番号0-0-0チェック) var C_TEL_MOBILE2 = 5; // 携帯電話(電話番号0-0-0チェック) //************************************************** // チェッカークラスファクトリー //************************************************** function CheckerFactory( type ) { var c; if ( type == C_TYPE_NAME_KANJI ) { c = new CheckerKANJI(); c.bAllowAlp = true; c.bAllowNum = true; c.bAllowSpace = false; } else if ( type == C_TYPE_NAME_KANA ) { c = new CheckerKANA(); c.bAllowAlp = false; c.bAllowNum = false; c.bAllowSpace = false; } else if ( type == C_TYPE_NAME_ROMA ) { c = new CheckerHANKAKU(); c.bAllowAlp = true; c.bAllowNum = false; c.bAllowSpace = false; } else if ( type == C_TYPE_TEXT_NUMBER ) { c = new CheckerHANKAKU(); c.bAllowAlp = false; c.bAllowNum = true; c.bAllowSpace = false; } else if ( type == C_TYPE_TEXT_KANJI ) { c = new CheckerKANJI(); c.bAllowAlp = true; c.bAllowNum = true; c.bAllowSpace = true; } else if ( type == C_TYPE_TEXT_KANA ) { c = new CheckerKANA(); c.bAllowAlp = true; c.bAllowNum = true; c.bAllowSpace = true; } else if ( type == C_TYPE_TEXT_NUMALP ) { c = new CheckerHANKAKU(); c.bAllowAlp = true; c.bAllowNum = true; c.bAllowSpace = false; } // O751 20030926 村上 else if ( type == C_TYPE_TEXT_KANA2 ) { c = new CheckerKANA2(); c.bAllowAlp = true; c.bAllowNum = true; c.bAllowSpace = true; } return c; } //************************************************** // 漢字チェッカー //************************************************** function CheckerKANJI() { this.bAllowAlp = true; this.bAllowNum = true; this.bAllowSpace = false; this.CheckType = function ( txtObj ) { if ( CheckZenkakuAll ( txtObj.value, this.bAllowSpace ) == false ) { alert( msg( WSN1004 ) ); txtObj.focus(); txtObj.select(); return false; } return true; } this.CheckLength = function ( sSrc, iMin, iMax ) { return CheckLength ( sSrc, iMin, iMax, "字" ); } } //************************************************** // カナチェッカー //************************************************** function CheckerKANA() { this.bAllowAlp = false; this.bAllowNum = false; this.bAllowSpace = false; this.CheckType = function( txtObj ) { var sAllowStr = STRZenKana; var sErrMsg = "全角カタカナ"; if ( this.bAllowSpace ) { sAllowStr += STRZenAlp; sErrMsg += "・英字"; } if ( this.bAllowNum ) { sAllowStr += STRZenNumber; sErrMsg += "・数字"; } if ( this.bAllowSpace ) { sAllowStr += " "; } sErrMsg += "で入力してください。"; if ( CheckZenkakuPart ( txtObj.value, sAllowStr ) == false ) { alert ( sErrMsg ); txtObj.focus(); txtObj.select(); return false; } } this.CheckLength = function ( sSrc, iMin, iMax ) { return CheckMaxZenToHan ( sSrc, iMax ); } } // O751 20030926 村上 //************************************************** // カナチェッカー 特殊文字対応 //************************************************** function CheckerKANA2() { this.bAllowAlp = false; this.bAllowNum = false; this.bAllowSpace = false; this.CheckType = function( txtObj ) { var sAllowStr = STRZenKana2; var sErrMsg = "全角カタカナ"; if ( this.bAllowSpace ) { sAllowStr += STRZenAlp; sErrMsg += "・英字"; } if ( this.bAllowNum ) { sAllowStr += STRZenNumber; sErrMsg += "・数字"; } if ( this.bAllowSpace ) { sAllowStr += " "; } sErrMsg += "で入力してください。"; if ( CheckZenkakuPart ( txtObj.value, sAllowStr ) == false ) { alert ( sErrMsg ); txtObj.focus(); txtObj.select(); return false; } } this.CheckLength = function ( sSrc, iMin, iMax ) { return CheckMaxZenToHan ( sSrc, iMax ); } } //************************************************** // 半角チェッカー //************************************************** function CheckerHANKAKU() { this.bAllowAlp = true; this.bAllowNum = false; this.bAllowSpace = false; this.sTanni = ''; this.CheckType = function( txtObj ) { var sAllowMatch = ""; var sErrMsg = "半角"; if ( this.bAllowNum ) { sAllowMatch += "0-9"; sErrMsg += "数字"; this.sTanni = "桁"; } if ( this.bAllowAlp ) { sAllowMatch += "a-zA-Z"; sErrMsg += "英字"; this.sTanni = "字"; } if ( this.bAllowSpace ) { sAllowMatch += " "; this.sTanni = "字"; } sErrMsg += "で入力してください。"; if ( CheckHankakuPart ( txtObj.value, sAllowMatch ) == false ) { alert ( sErrMsg ); txtObj.focus(); txtObj.select(); return false; } } this.CheckLength = function ( sSrc, iMin, iMax ) { return CheckLength ( sSrc, iMin, iMax, this.sTanni ); } } //************************************************** // 全角チェック //************************************************** function CheckZenkakuAll( sSrc, bAllowSpace ) { if ( sSrc.match(/[\x20-\x7E]/gi) != null ) return false; for( var i = 0; i < sSrc.length; i++ ) { if ( STRHanKana.indexOf( sSrc.charAt( i ), 0 ) >= 0 ) return false; } if ( bAllowSpace == false ) { if ( sSrc.match(/ /) != null ) return false; } return true; } //*************************************************** // 全角指定チェック //*************************************************** function CheckZenkakuPart( sSrc, sAllowStr ) { for ( i = 0; i < sSrc.length; i++ ) { if ( sAllowStr.indexOf( sSrc.charAt( i ), 0 ) < 0 ) return false; } return true; } //*************************************************** // 半角指定チェック //*************************************************** function CheckHankakuPart( sSrc, sAllowMatch ) { sWk = "[^" + sAllowMatch + "]"; var re = new RegExp( sWk ); if ( re.test ( sSrc ) == true ) { return false; } else { return true } } //*************************************************** // 桁数チェック //*************************************************** function CheckLength( sSrc, iMin, iMax, sUnit ) { if ( sSrc.length < iMin || sSrc.length > iMax ) { if ( iMin == iMax ) { return iMax + sUnit + msg( WSN1002 ); } else if ( iMin == 0 ) { return iMax + sUnit + msg( WSN1003 ); } else { return iMin + sUnit + "から" + iMax + sUnit + msg( WSN1003 ); } } return ""; } //************************************************** // 全角−半角変換桁数チェック // 全角から半角にすると2文字になるやつがあるのを考慮 // obj チェック対象 // Max 最大入力文字数 //************************************************** function CheckMaxZenToHan( Str, Max ) { var len = 0; for ( i = 0; i < Str.length; i++ ) { if ( STRZenKana2byte.indexOf( Str.charAt( i ), 0 ) >= 0 ) { len += 2; } else { len += 1; } } if ( len > Max ) { return Max + msg(WSN1003); } else { return ""; } } //*************************************************** // SELECTで選択されている値 //*************************************************** function GetSelValue( selObj ) { return selObj.options[ selObj.selectedIndex ].value; } //*************************************************** // SELECTで選択されているテキスト //*************************************************** function GetSelText( selObj, bNoTitle ) { if ( bNoTitle != true && selObj.selectedIndex == 0 ) { return ""; } else { return selObj.options[ selObj.selectedIndex ].text; } } //************************************************** // 必須入力チェック // false:空 true:空じゃない //************************************************** function NullCheck( obj, sName ) { switch ( obj.type ) { case "select-one": case "select-multiple": var sVal = GetSelValue ( obj ); if ( sVal == "-1" || sVal == "" ) { alert ( sName + msg( WSN1013 ) ); obj.focus(); return false; } break; default: if ( obj.value.replace( /[  ]+/, "" ) == "" ){ alert( sName + msg( WSN1014 ) ); obj.focus(); obj.select(); return false; } break; } return true; } //************************************************** // 必須入力チェック // false:空 true:空じゃない //************************************************** function NullCheck3( obj, sName ) { switch ( obj.type ) { case "select-one": case "select-multiple": var sVal = GetSelValue ( obj ); if ( sVal == "-1" || sVal == "" ) { return false; } break; default: if ( obj.value.replace( /[  ]+/, "" ) == "" ){ return false; } break; } return true; } //************************************************** // 必須入力チェック2 // false:空 true:空じゃない // 年・月入力チェックに使用 // 年・月ともに未入力の場合にエラーとする。 // O713対応 2003/06/22 市丸 //************************************************** function NullCheck2( obj1, obj2, sName ) { switch ( obj1.type ) { case "select-one": case "select-multiple": var sVal1 = GetSelValue ( obj1 ); var sVal2 = GetSelValue ( obj2 ); if ( sVal1 == "" && sVal2 == "" ) { alert ( sName + msg( WSN1014 ) ); obj1.focus(); return false; } break; default: if ( ( obj1.value.replace( /[  ]+/, "" ) == "" ) && ( obj2.value.replace( /[  ]+/, "" ) == "" ) ){ alert( sName + msg( WSN1014 ) ); obj1.focus(); obj1.select(); return false; } break; } return true; } //************************************************** // エラーを表示してフォーカス移動 //************************************************** function ShowError ( sErrMsg, obj ) { alert ( sErrMsg ); obj.focus(); if ( obj.type == "text" ) obj.select(); } //************************************************** // ローマ字姓名エンボスワーニング //************************************************** function CheckRomaName ( txtName1, txtName2, txtCardNo, txtEnhPtn ) { if ( CheckRomaNameStr ( txtName1.value + txtName2.value, txtCardNo.value.substring( 5, 6 ), txtEnhPtn.value ) == false ) { txtName1.focus(); txtName1.select(); return false; } return true; } function CheckRomaNameStr ( sName, sInn, sEnhPtn ) { if ( sName.length > 26 ) { // ローマ字自動変換後(確認画面でのタイミング) alert ( "お名前ローマ字は26文字以内で入力して下さい。\n情報訂正ボタンを押して、修正画面へ移動して下さい。" ); return false; } switch ( sInn ) { case "1": case "J": /* @国際カード区分が'1'又は'J'(国際OMC(VISA))の場合、 カード機能マスタ存在チェック時に同マスタより取得したエンボスパターンが、 1) '0'(国際カード一般)、'1'(国際カード従業員)の場合、 a) 従業員会社コードが'0001'又は'7700'の時、桁数>27はワーニング表示 b) 上記以外の時、桁数>24はワーニング表示 2) '5'(国際カード一般・エコロジー)の場合、 a) 従業員会社コードが'7700'の時、桁数>27はワーニング表示 b) 上記以外の時、桁数>24はワーニング表示 3) '6'(国際カードIDカード)の場合、桁数>27はワーニング表示 4) 'A'(コーポレートカード)の場合、桁数>24はワーニング表示 5) 'B'(ゴールド国際一般)、'C'(ゴールド国際従業員)の場合、 a) 従業員会社コードが'0001'の時、桁数>27はワーニング表示 b) 上記以外の時、桁数>24はワーニング表示 6) 'D'(郵貯提携国際カード)の場合、桁数>27はワーニング表示 7) 上記以外のエンボスパターンはエラー */ /*** O709対応 2003/06/28 市丸 エンボスパターンのチェックエラー時に、確認メッセージの表示と していたのをalert表示に変更。 ***/ if ( sEnhPtn != "6" && sEnhPtn != "D" ) { if ( sName.length > 23 ) { var sMsg = "VISAカードのお名前ローマ字は\n23字以内でご入力いただけませんと\nエンボス文字がカードの枠内に収まりません。"; window.alert ( sMsg ); return false; } } break; /*** if ( sEnhPtn != "6" && sEnhPtn != "D" ) { if ( sName.length > 24 ) { var sMsg = "VISAカードのお名前ローマ字は\n24字以内でご入力いただけませんと\nエンボス文字がカードの枠内に収まりません。\nよろしいですか?"; if ( confirm ( sMsg ) == false ) { return false; } } } break; ***/ case "2": case "M": /* A国際カード区分が'2'又は'M'(国際OMC(MASTER))の場合、 カード機能マスタ存在チェック時に同マスタより取得したエンボスパターンが、 1) '0'(国際カード一般)、'1'(国際カード従業員)の場合、 a) 従業員会社コードが'0001'又は'7700'の時、桁数>27はワーニング表示 b) 上記以外の場合、桁数>24はワーニング表示 2) '5'(国際カード一般・エコロジー)の場合、 a) 従業員会社コードが'7700'の時、桁数>27はワーニング表示 b) 上記以外の場合、桁数>24はワーニング表示 3) '6'(国際カードIDカード)の場合、桁数>27はワーニング表示 4) 'B'(ゴールド国際一般)、'C'(ゴールド国際従業員)の場合、 a) 従業員会社コードが'0001'の時、桁数>27はワーニング表示 b) 上記以外の場合、桁数>24はワーニング表示 5) 上記以外のエンボスパターンはエラー */ if ( sEnhPtn != "6" ) { if ( sName.length > 23 ) { var sMsg = "MASTERカードのお名前ローマ字は\n23字以内でご入力いただけませんと\nエンボス文字がカードの枠内に収まりません。"; window.alert ( sMsg ); return false; } } break; /*** if ( sEnhPtn != "6" ) { if ( sName.length > 24 ) { var sMsg = "MASTERカードのお名前ローマ字は\n24字以内でご入力いただけませんと\nエンボス文字がカードの枠内に収まりません。\nよろしいですか?"; if ( confirm ( sMsg ) == false ) { return false; } } } break; ***/ case "3": case "J": /* B国際カード区分が'3'又は'J'(国際OMC(JCB))の場合、 カード機能マスタ存在チェック時に同マスタより取得したエンボスパターンが、 1) '0'(国際カード一般)、'1'(国際カード従業員)の場合、 a) 従業員会社コードが'0001'又は'7700'の時、桁数>22はワーニング表示 b) 上記以外の場合、桁数>22はワーニング表示 2) '5'(国際カード一般・エコロジー)の場合、 a) 従業員会社コードが'7700'の時、桁数>22はワーニング表示 b) 上記以外の場合、桁数>22はワーニング表示 3) 'D'(郵貯提携国際カード)又は'6'(国際カードIDカード)の場合、桁数>22はワーニング表示 4) 'B'(ゴールド国際一般)、'C'(ゴールド国際従業員)の場合、 a) 従業員会社コードが'0001'の時、桁数>22はワーニング表示 b) 上記以外の場合、桁数>22はワーニング表示 5) 上記以外のエンボスパターンはエラー */ if ( sName.length > 21 ) { var sMsg = "JCBカードのお名前ローマ字は\n21字以内でご入力いただけませんと\nエンボス文字がカードの枠内に収まりません。"; alert ( sMsg ); return false; } break; /*** if ( sName.length > 22 ) { var sMsg = "JCBカードのお名前ローマ字は\n22字以内でご入力いただけませんと\nエンボス文字がカードの枠内に収まりません。\nよろしいですか?"; if ( confirm ( sMsg ) == false ) { return false; } } break; ***/ case "9": case "8": case "0": case "L": /* C国際カード区分が'9'(国内OMC)又は'8'(インハウス)又は、'O'(国内OMC)又は'L'(インハウス)の場合、 カード機能マスタ存在チェック時に同マスタより取得したエンボスパターンが、 1) '2'(国内カード一般)、'3'(国内カード従業員)、'4'(国内カード法人)の場合、桁数>27はワーニング表示 2) '7'(国内カード一般(無制限))、'8'(国内カード一般(期限付))、'9'(国内カード法人4ライン)の場合、桁数>27はワーニング表示 3) 'E'(提携先IDハウスカード)、桁数>27はワーニング表示 4) 'F'(OMCローンカード)の場合、桁数>27はワーニング表示 5) 上記以外のエンボスパターンはエラー" */ break; } return true; }