regex Flutter如何使用form_field_validator只验证'https'而拒绝'http'?

7lrncoxx  于 2023-11-20  发布在  Flutter
关注(0)|答案(3)|浏览(115)

我正在尝试对URL进行验证,只接受'https'并拒绝'https'。我正在使用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'),
]);

2uluyalo

2uluyalo1#

您可以使用正则表达式来验证Flutter中的URL,使用form_field_validator包。要仅接受“https”URL并拒绝“http”URL,您可以使用以下正则表达式模式和RegExp验证器:
第一个月

ui7jx7zq

ui7jx7zq2#

我看到你想使用正则表达式来验证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!);
}

字符串

bmp9r5qi

bmp9r5qi3#

试试这个正则表达式,希望能成功。

final RegExp httpsPattern = RegExp(r'^https://');

字符串

相关问题