Skip to content

Commit 241d302

Browse files
authored
Merge pull request #232 from imbrn/fix-inefficient-case-regex
fix inefficient regular expressions on lowercase and uppercase rules
2 parents 472b06b + 9970ffc commit 241d302

File tree

2 files changed

+12
-2
lines changed

2 files changed

+12
-2
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
77

88
## [Unreleased]
99

10+
### Fixed
11+
12+
- Inefficient regular expression complexity of lowercase() and uppercase() rules
13+
1014
## [1.5.0] - 2022-06-27
1115

1216
### Added

src/v8n.js

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -189,9 +189,15 @@ const availableRules = {
189189

190190
pattern: expected => value => expected.test(value),
191191

192-
lowercase: () => value => /^([a-z]+\s*)+$/.test(value),
192+
lowercase: () => value => {
193+
return (
194+
typeof value === 'boolean' ||
195+
(value === value.toLowerCase() && value.trim() !== '')
196+
);
197+
},
193198

194-
uppercase: () => value => /^([A-Z]+\s*)+$/.test(value),
199+
uppercase: () => value =>
200+
value === value.toUpperCase() && value.trim() !== '',
195201

196202
vowel: () => value => /^[aeiou]+$/i.test(value),
197203

0 commit comments

Comments
 (0)