全角文字のみ入力させたい項目に半角文字が入力されたことを判定する
2021/03/02
方法
文字列が全角か半角かを判定する関数は存在しませんが、入力された文字列に対して 1 文字ごとに Len 関数の値を確認することで判定することができます。
Len 関数は文字数を、LenA 関数はバイト数を戻します。また、LenA 関数は SJIS に存在しない文字を渡すと -1 を返します。 このことから「LenA 関数の戻り値」が 1 の場合は半角であり、1 以外の場合は全角であると判定することができます。
【例】
string ls_string // チェックする文字列 char lc_str[] long ll_cnt boolean lb_flg = FALSE // チェックする文字列を Char 型配列に格納 lc_str = ls_string FOR ll_cnt = 1 to UpperBound(lc_str) // LenA が 1 の場合は半角文字 IF LenA(lc_str[ll_cnt]) = 1 THEN lb_flg = TRUE EXIT END IF NEXT IF lb_flg THEN MessageBox("確認", "半角文字が含まれています。") END IF
Tips情報
プロダクト :PowerBuilder
バージョン :2017R3