文字列を検証してURLかどうかを確認できるシステムを作成しようとしています。 ( https://www.google.com/ )
Flutterパッケージ validator を見つけましたが、これはDart 2互換ではないため、私のコードと互換性がありません。
同様に名前が付けられた validators パッケージも見つかりましたが、次のエラーがスローされるため、コードで正しく機能していないようです。 (私のプロジェクト名が気に入っていただければ幸いです;)
Because every version of flutter_test from sdk depends on test 1.3.0
and every version of validators depends on test ^1.3.3, flutter_test from sdk is incompatible with validators.
So, because gucci depends on both validators ^1.0.0+1 and flutter_test any from sdk, version solving failed.
Unable to reload your application because "flutter packages get" failed to update package dependencies.
Exception: pub get failed (1)
validators
の修正を見つけて、このエラーをスローせずにコードで正しく機能するか、文字列を検証してURLに準拠していることを示す別の方法を提案した場合は、すばらしいでしょう。
ありがとう
編集-私のpubspec.yaml
ファイル
name: gucci
description: A new Flutter project.
dependencies:
flutter:
sdk: flutter
cupertino_icons:
barcode_scan:
gradient_app_bar:
url_launcher:
validate: ^1.7.0
dev_dependencies:
flutter_test:
sdk: flutter
fonts:
- family: PlayfairDisplay
fonts:
- asset: fonts/PlayfairDisplay-BoldItalic.ttf
- family: Kanit
fonts:
- asset: fonts/Kanit-ExtraBoldItalic.ttf
- family: Poppins
fonts:
- asset: fonts/Poppins-BoldItalic.ttf
- family: PoppinsLightItalic
fonts:
- asset: fonts/Poppins-LightItalic.ttf
- family: PoppinsMediumItalic
fonts:
- asset: fonts/Poppins-MediumItalic.ttf
RegExpの場合、文字列でURLを検索する場合は、これを使用できます。
r'^((?:.|\n)*?)((http:\/\/www\.|https:\/\/www\.|http:\/\/|https:\/\/)?[a-z0-9]+([\-\.]{1}[a-z0-9]+)([-A-Z0-9.]+)(/[-A-Z0-9+&@#/%=~_|!:,.;]*)?(\?[A-Z0-9+&@#/%=~_|!:,.;]*)?)'
文字列内のURLを強調表示するときに使用できます。たとえば、チャットアプリでは、送信されたチャットメッセージのURLを強調表示できます。これにより、google.com、 https://google.com 、 http://google.com すべてが検証されます。