Skip to content

Commit 62d6bb7

Browse files
committed
Fixes
1 parent 6f0b080 commit 62d6bb7

File tree

3 files changed

+9
-10
lines changed

3 files changed

+9
-10
lines changed

lib/src/file/path_validator.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@ class PathValidator extends BaseValidator<String> {
2222
///
2323
/// Examples: /path/to/file, C:/Users/Name/Documents
2424
/// {@endtemplate}
25-
static final RegExp _filePath = RegExp(r'^[a-zA-Z0-9_\-\/]+$');
25+
static final RegExp _filePath =
26+
RegExp(r'^((\/|\\|[a-zA-Z]:\/)?([^<>:"|?*]+(\/|\\)?)+)$');
2627

2728
@override
2829
String get translatedErrorText =>

lib/src/network/url_validator.dart

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -194,18 +194,18 @@ class UrlValidator extends BaseValidator<String> {
194194
}
195195
}
196196

197+
final String partPattern = allowUnderscores
198+
? r'^[a-z\u00a1-\uffff0-9-_]+$'
199+
: r'^[a-z\u00a1-\uffff0-9-]+$';
200+
197201
for (final String part in parts) {
198-
if (allowUnderscores) {
199-
if (part.contains('__')) {
200-
return false;
201-
}
202-
}
203-
if (!RegExp(r'^[a-z\\u00a1-\\uffff0-9-]+$').hasMatch(part)) {
202+
if (!RegExp(partPattern).hasMatch(part)) {
204203
return false;
205204
}
206205
if (part[0] == '-' ||
207206
part[part.length - 1] == '-' ||
208-
part.contains('---')) {
207+
part.contains('---') ||
208+
(allowUnderscores && part.contains('__'))) {
209209
return false;
210210
}
211211
}

test/src/file/path_validator_test.dart

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ void main() {
3434
'folder/subfolder/file<name>.txt',
3535
'folder?name/subfolder/file.txt',
3636
'folder/subfolder/file:name.txt',
37-
r'folder\subfolder\file.txt',
3837
];
3938

4039
// Act & Assert
@@ -55,7 +54,6 @@ void main() {
5554
'folder/subfolder/file<name>.txt',
5655
'folder?name/subfolder/file.txt',
5756
'folder/subfolder/file:name.txt',
58-
r'folder\subfolder\file.txt',
5957
];
6058

6159
// Act & Assert

0 commit comments

Comments
 (0)