全角文字のみ入力させたい項目に半角文字が入力されたことを判定する

PowerBuilder Tips

方法

文字列が全角か半角かを判定する関数は存在しませんが、入力された文字列に対して 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

Tips 一覧を見る
PowerBuilder マイグレーション
PowerBuilder学習、動画で始めちゃう?