2026年6月30日 星期二

V1060302 – 檢核飛行小時的格式(hhhhhh:mm) - regex - 允許前導空白,小時可為負數,1~6 位數字 + 冒號 + 2 位數字

 目的: V1060302 – 檢核飛行小時的格式(hhhhhh:mm) - regex
           - 允許前導空白,小時可為負數,1~6 位數字+冒號+2 位數字
                  Ex:   123:30  ,  -123:30 ,000123:30   均可

處理說明:  1> *.js 格式:6 位數字 + 冒號 + 2 位數字
                        const regex = /^\d{6}:\d{2}$/;       
                        regex.text(value) ; //若value正確,則傳回 true , 否則 false 
                   2>*.js 格式 :     // 允許前導空白,小時可為負數,1~6 位數字 + 冒號 + 2 位數字       
                        const regex = /^\s*-?\d{1,6}:\d{2}$/;
                        regex.text(value) ; //若value正確,則傳回 true , 否則 false 

                    3>*.cs
                        using System.Text.RegularExpressions;
                       //判斷 [代碼]值是否在範圍內
                      Regex regex = new Regex("^[A-O]$");
                     if (!regex.IsMatch(Tmp_TMBASE1))
                          Tmp_RtnMsg = Tmp_RtnMsg + "[屆期基準1]必需在'A'..'O'之間;<br>";


1>*.js
//STEP1.5>檢核[小時]格式是否符合 hhhhhh:mm    
    function CHECK_TMFIELD() {        
        var Tmp_isok = true;
        // 格式:6 位數字 + 冒號 + 2 位數字
        //const regex = /^\d{6}:\d{2}$/;       
        // 允許前導空白,小時可為負數,1~6 位數字 + 冒號 + 2 位數字       
        const regex = /^\s*-?\d{1,6}:\d{2}$/;
        //1>檢核[上次總飛行小時(L_FLYHR)
        var Tmp_L_FLYHR = Ext.getCmp("L_FLYHR").getValue().trim();
        if (Tmp_L_FLYHR.length > 0) {
        Tmp_isok = regex.test(Tmp_L_FLYHR);
        if (!Tmp_isok) {
            Tmp_Str = "[上次總飛行小時(" + Tmp_L_FLYHR + ")格式(hhhhhh:mm)不符<br>"
                + "敬請檢核!! ";
            mywarnalert(Tmp_Str);
            return Tmp_isok;
        }
        const [hours, minutes] = Tmp_L_FLYHR.trim().split(":");
        Tmp_isok = parseInt(minutes, 10) >= 0 && parseInt(minutes, 10) <= 59;
        if (!Tmp_isok) {
            Tmp_Str = "[上次總飛行小時(" + Tmp_L_FLYHR + ")格式(hhhhhh:mm)不符<br>"
                + "分鐘數字不符<br>"
                +"敬請檢核!! ";
            mywarnalert(Tmp_Str);
            return Tmp_isok;
            }
        }  // end of  if (Tmp_L_FLYHR.length > 0) {




2>*.cs
using System.Text.RegularExpressions;   // for  Regex


//判斷 [代碼]值是否在範圍內
Regex regex = new Regex("^[A-O]$");
if (!regex.IsMatch(Tmp_TMBASE1));
     Tmp_RtnMsg = Tmp_RtnMsg + "[屆期基準1]必需在'A'..'O'之間;<br>";

Regex regex1 = new Regex("^[A-F]$");
if (!regex1.IsMatch(Tmp_TMUNIT1)) ;
    Tmp_RtnMsg = Tmp_RtnMsg + "[屆期單位1]必需在'A'..'F'之間;<br>";
if (!regex1.IsMatch(Tmp_PTMUNIT1)) ;
   Tmp_RtnMsg = Tmp_RtnMsg + "[屆期前通知條件單位1]必需在'A'..'F'之間;<br>";





沒有留言:

張貼留言