Beispiel #1
0
        /// <summary>
        /// 解析简单型表达式
        /// </summary>
        /// <param name="p_srcValue">数据值</param>
        /// <param name="p_mask">掩码格式</param>
        /// <param name="p_placeHolder">占位符样式</param>
        /// <param name="p_saveLiteral">是否保存掩码后的文字</param>
        /// <returns>解析后的表达式</returns>
        public static string ParseSimpleMask(object p_srcValue, string p_mask, char p_placeHolder, bool p_saveLiteral)
        {
            if (p_saveLiteral)
            {
                return(p_srcValue.ToString());
            }
            LegacyMaskInfo info = LegacyMaskInfo.GetSimpleMaskInfo(p_mask, CultureInfo.CurrentCulture);

            return(ParseLegacy(p_srcValue, p_mask, p_placeHolder, info));
        }
Beispiel #2
0
        /// <summary>
        /// 根据掩码属性创建编辑器的掩码员
        /// </summary>
        /// <returns></returns>
        MaskManager CreateDefaultMaskManager()
        {
            // 区域信息
            CultureInfo maskCulture = _owner.MaskCulture;

            if (maskCulture == null)
            {
                maskCulture = CultureInfo.CurrentCulture;
            }

            // 掩码表达式
            string str = _owner.Mask;

            if (str == null)
            {
                str = "";
            }

            // 根据掩码属性创建掩码管理者
            switch (_owner.MaskType)
            {
            case MaskType.DateTime:
                return(new DateTimeMaskManager(str, false, maskCulture, _owner.AllowNullInput));

            case MaskType.DateTimeAdvancingCaret:
                return(new DateTimeMaskManager(str, true, maskCulture, _owner.AllowNullInput));

            case MaskType.Numeric:
                return(new NumericMaskManager(str, maskCulture, _owner.AllowNullInput));

            case MaskType.RegEx:
                if (_owner.IgnoreBlank && (str.Length > 0))
                {
                    str = "(" + str + ")?";
                }
                return(new RegExpMaskManager(str, false, _owner.AutoComplete != AutoCompleteType.None, _owner.AutoComplete == AutoCompleteType.Optimistic, _owner.ShowPlaceHolder, _owner.PlaceHolder, maskCulture));

            case MaskType.Regular:
                return(new LegacyMaskManager(LegacyMaskInfo.GetRegularMaskInfo(str, maskCulture), _owner.PlaceHolder, _owner.SaveLiteral, _owner.IgnoreBlank));

            default:
                return(new LegacyMaskManager(LegacyMaskInfo.GetSimpleMaskInfo(str, maskCulture), _owner.PlaceHolder, _owner.SaveLiteral, _owner.IgnoreBlank));
            }
        }
Beispiel #3
0
        /// <summary>
        /// 解析简单型表达式
        /// </summary>
        /// <param name="p_srcValue">数据值</param>
        /// <param name="p_mask">掩码格式</param>
        /// <param name="p_placeHolder">占位符样式</param>
        /// <param name="p_info">简单正则表达式信息</param>
        /// <returns>解析后的表达式</returns>
        static string ParseLegacy(object p_srcValue, string p_mask, char p_placeHolder, LegacyMaskInfo p_info)
        {
            LegacyMaskManagerState state = new LegacyMaskManagerState(p_info);
            string initialEditText       = string.Format(CultureInfo.InvariantCulture, "{0}", new object[] { p_srcValue });

            state.Insert(initialEditText);
            return(state.GetDisplayText(p_placeHolder));
        }