choerodon-ui
Version:
An enterprise-class UI design language and React-based implementation
44 lines (33 loc) • 1.37 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = patternMismatch;
var _isEmpty = _interopRequireDefault(require("../../_util/isEmpty"));
var _ValidationResult = _interopRequireDefault(require("../ValidationResult"));
var _localeContext = require("../../locale-context");
function generatePattern(pattern) {
if (pattern instanceof RegExp) {
return pattern;
}
var begin = pattern.startsWith('^') ? '' : '^';
var end = pattern.endsWith('$') ? '' : '$';
return new RegExp("".concat(begin).concat(pattern).concat(end));
}
function patternMismatch(value, props) {
var pattern = props.pattern,
defaultValidationMessages = props.defaultValidationMessages;
if (!(0, _isEmpty["default"])(value) && !!pattern && !generatePattern(pattern).test(value)) {
var ruleName = 'patternMismatch';
var _defaultValidationMes = defaultValidationMessages[ruleName],
validationMessage = _defaultValidationMes === void 0 ? (0, _localeContext.$l)('Validator', 'pattern_mismatch') : _defaultValidationMes;
return new _ValidationResult["default"]({
validationMessage: validationMessage,
value: value,
ruleName: ruleName
});
}
return true;
}
//# sourceMappingURL=patternMismatch.js.map