validate_phone_number 1.1.1
validate_phone_number: ^1.1.1 copied to clipboard
A new Flutter package for validate phone number based on country code.
example/lib/main.dart
import 'package:flutter/material.dart';
import 'package:validate_phone_number/country_picker.dart';
import 'package:validate_phone_number/validation.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(),
home: const MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
const MyHomePage({super.key});
@override
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
TextEditingController controller = TextEditingController();
final _formKey = GlobalKey<FormState>();
@override
Widget build(BuildContext context) {
return Scaffold(
body: Padding(
padding: const EdgeInsets.symmetric(horizontal: 20),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Form(
key: _formKey,
child: TextFormField(
decoration: InputDecoration(
prefixIcon: PickCountry(
onCountrySelected: (phoneCode, countryCode) {
},
),
focusedBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(15),
),
enabledBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(15)
),
errorBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(15),
borderSide: const BorderSide(
color: Colors.red
)
),
focusedErrorBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(15),
borderSide: const BorderSide(
color: Colors.red
)
),
contentPadding: EdgeInsets.zero
),
controller: controller,
validator: (value) {
if (value == null || value.isEmpty) {
return 'Please enter something';
} else if (!Validator.validatePhoneNumber(value.toString(), 'IN')) {
return 'Invalid mobile number for the selected country';
} else {
return null;
}
},
),
),
const SizedBox(
height: 20,
),
ElevatedButton(onPressed: () {
if(_formKey.currentState!.validate()){
print('validate');
}
}, child: const Text('Test'))
],
),
),
);
}
}