提问人:John 提问时间:10/27/2023 更新时间:10/30/2023 访问量:39
Flutter 如何使用 form_field_validator 仅验证 'https' 并拒绝 'http'?
Flutter How can I validate only 'https' and reject 'http' using form_field_validator?
问:
我正在尝试对仅接受“https”并拒绝“http”的 URL 进行验证。我正在使用form_field_validator,我可能知道如何使用它。但是,我不知道如何编写正则表达式。谁能帮我解决这个问题?这是下面的代码。
url_validator.dart
import 'package:form_field_validator/form_field_validator.dart';
class UrlValidator extends TextFieldValidator {
UrlValidator({required String errorText}) : super(errorText);
// I would like to validate only 'https' but this code doesn't work
var urlPattern =
r'https';
@override
bool isValid(String? value) => RegExp(urlPattern).hasMatch(value!);
}
验证者.dart
import 'package:form_field_validator/form_field_validator.dart';
final urlValidator = MultiValidator([
UrlValidator(errorText: 'URL is invalid'),
]);
答:
-1赞
Munsif Ali
10/27/2023
#1
试试这个正则表达式,希望这能起作用。
final RegExp httpsPattern = RegExp(r'^https://');
0赞
Samed Demir
10/27/2023
#2
你可以使用正则表达式来验证 Flutter 中的 URL,使用 form_field_validator 包。要仅接受“https”URL 并拒绝“http”URL,可以使用以下正则表达式模式和 RegExp 验证程序:
RegExp regex = RegExp(r'^https://[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$');
0赞
Hemant Metalia
10/30/2023
#3
我看到您想使用正则表达式来验证 URL,并仅接受以“https”开头的 URL,同时拒绝“http”。您走在正确的轨道上,但是您在 url_validator.dart 中提供的正则表达式模式没有正确定义您想要的规则。您可以通过使用如下所示的正则表达式来实现此目的:
import 'package:form_field_validator/form_field_validator.dart';
class UrlValidator extends TextFieldValidator {
UrlValidator({required String errorText}) : super(errorText);
// Use a regular expression to validate 'https' URLs
var urlPattern = r'^https:\/\/';
@override
bool isValid(String? value) => RegExp(urlPattern).hasMatch(value!);
}
评论