Fix regex input validator

This commit is contained in:
akhmetsafin
2023-11-03 02:36:10 +03:00
parent 69a39ef928
commit d467a111b8
@@ -91,7 +91,7 @@ extension DivInput {
return TextInputValidator(
isValid: context.makeBinding(variableName: regexValidator.variable, defaultValue: false),
allowEmpty: regexValidator.resolveAllowEmpty(expressionResolver),
validator: { $0.matchesRegex(regex) },
validator: { $0.fullMatchesRegex(regex) },
message: makeMessage(
from: regexValidator.resolveLabelId(expressionResolver),
storage: context.blockStateStorage,
@@ -231,3 +231,11 @@ extension DivFixedLengthInputMask.PatternElement {
)
}
}
extension String {
fileprivate func fullMatchesRegex(_ regex: NSRegularExpression) -> Bool {
let range = stringRangeAsNSRange(wholeStringRange, inString: self)
return regex.matches(in: self, options: [], range: range)
.contains { $0.range == range }
}
}