UNPKG

@openui5/sap.m

Version:

OpenUI5 UI Library sap.m

119 lines (105 loc) 3.61 kB
/*! * OpenUI5 * (c) Copyright 2009-2023 SAP SE or an SAP affiliate company. * Licensed under the Apache License, Version 2.0 - see LICENSE.txt. */ // Provides control sap.m.MaskInputRule. sap.ui.define(['sap/ui/core/Element', "sap/base/Log"], function(Element, Log) { "use strict"; /** * Constructor for a new MaskInputRule. * * @param {string} [sId] ID for the new control, generated automatically if no ID is given * @param {object} [mSettings] Initial settings for the new control * * @class * The <code>sap.m.MaskInputRule</code> control holds the mapping of a single <code>maskFormatSymbol</code> * to the regular expression <code>regex</code> that defines the allowed characters for the rule. * * @author SAP SE * @extends sap.ui.core.Element * @version 1.117.4 * @public * @constructor * @since 1.34.0 * @alias sap.m.MaskInputRule */ var MaskInputRule = Element.extend("sap.m.MaskInputRule", /** @lends sap.m.MaskInputRule.prototype */ { metadata : { library : "sap.m", properties : { /** * Defines the symbol used in the mask format which will accept a certain range of characters. */ maskFormatSymbol: {type: "string", group: "Misc", defaultValue: "*"}, /** * Defines the allowed characters as a regular expression. */ regex: {type: "string", group: "Misc", defaultValue: "[a-zA-Z0-9]"} } } }); /* * Sets <code>maskFormatSymbol</code> property. * @override * @param {string} sNewMaskFormatSymbol The new format symbol * @returns {this} The <code>this</code> pointer for chaining */ MaskInputRule.prototype.setMaskFormatSymbol = function (sNewMaskFormatSymbol) { var bIsMaskSymbolValid = validateMaskFormatSymbol.call(this, sNewMaskFormatSymbol); if (bIsMaskSymbolValid) { this.setProperty("maskFormatSymbol", sNewMaskFormatSymbol); } return this; }; /* * Sets <code>regex</code> property. * @override * @param {string} sNewRegex The new regular expression * @returns {this} The <code>this</code> pointer for chaining */ MaskInputRule.prototype.setRegex = function (sNewRegex) { var bIsRegexValid = validateRegex.call(this, sNewRegex); if (bIsRegexValid) { this.setProperty("regex", sNewRegex); } return this; }; /** * Converts the rule into a string. * @returns {string} String representation of this instance */ MaskInputRule.prototype.toString = function(){ return this.getMaskFormatSymbol() + ":" + this.getRegex(); }; /******************************************************************************************** ********************************* Private methods ****************************************** ********************************************************************************************/ /** * Checks if the specified symbol is valid. * @param {string} sNewSymbol Symbol to be validated * @returns {boolean} True if the specified symbol is valid, false otherwise * @private */ function validateMaskFormatSymbol(sNewSymbol) { if (/^.$/i.test(sNewSymbol)) { return true; } Log.error("The mask format symbol '" + sNewSymbol + "' is not valid"); return false; } /** * Checks if the specified regular expression is valid. * @param {string} sRegex The regular expression string to be validated * @returns {boolean} True of the specified regular expression string is valid, false otherwise * @private */ function validateRegex(sRegex) { if (/.+/i.test(sRegex)) { return true; } Log.error("The regex value '" + sRegex + "' is not valid"); return false; } return MaskInputRule; });