Rumah  >  Artikel  >  Java  >  Java melaksanakan pengesahan dan pemformatan medan borang

Java melaksanakan pengesahan dan pemformatan medan borang

王林
王林asal
2023-08-09 17:41:101628semak imbas

Java melaksanakan pengesahan dan pemformatan medan borang

Java melaksanakan pengesahan dan pemformatan medan borang

Dalam pembangunan web, borang ialah kaedah interaksi yang kerap digunakan. Pengesahan medan dan pemformatan borang adalah pautan penting untuk memastikan kesahihan dan ketekalan data. Di Java, kita boleh menggunakan pelbagai kaedah untuk mengesahkan dan memformat medan borang.

1. Pengesahan ungkapan biasa

Ekspresi biasa ialah alat pemadanan rentetan yang berkuasa yang boleh memadankan rentetan sasaran mengikut peraturan tertentu. Dalam pengesahan medan borang, kami boleh menggunakan ungkapan biasa untuk mengesahkan sama ada kandungan input mematuhi format yang ditentukan.

Sebagai contoh, kami boleh menggunakan ungkapan biasa untuk mengesahkan sama ada alamat e-mel mematuhi spesifikasi:

String emailPattern = "\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*";
String email = "example@example.com";

if (email.matches(emailPattern)) {
    System.out.println("邮箱地址格式正确");
} else {
    System.out.println("邮箱地址格式不正确");
}

Dalam kod di atas, kami mentakrifkan corak ungkapan biasa, dan kemudian menggunakan kaedah padanan() untuk menyemak sama ada e-mel yang dimasukkan alamat sesuai dengan corak.

2. Gunakan kelas alat pengesahan Java sendiri

Java menyediakan beberapa kelas alat pengesahan terbina dalam yang boleh membantu kami mengesahkan medan borang dengan cepat. Yang paling biasa digunakan ialah pengesahan anotasi dalam pakej javax.validation.

Kami boleh mengesahkan borang dengan menambahkan anotasi yang sepadan pada medan, contohnya:

import javax.validation.constraints.*;

public class User {

    @NotNull(message = "用户名不能为空")
    @Size(min = 6, max = 20, message = "用户名长度应在6到20个字符之间")
    private String username;

    @NotEmpty(message = "密码不能为空")
    @Pattern(regexp = "^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=])(?=\S+$).{8,}$",
        message = "密码必须包含大小写字母、数字和特殊字符,并且长度至少为8位")
    private String password;

    // 省略getter和setter方法
}

Dalam kod di atas, kami menggunakan beberapa pengesahan anotasi biasa, seperti @NotNull bermaksud medan itu tidak boleh batal, @ Saiz mengehadkan panjang julat medan, @NotEmpty menunjukkan bahawa medan tidak boleh kosong dan @Pattern menggunakan ungkapan biasa untuk mengesahkan format medan, dsb.

Kemudian kita boleh menggunakan validator dalam Java untuk mengesahkan objek Pengguna:

import javax.validation.*;

public class Main {

    public static void main(String[] args) {
        User user = new User();
        user.setUsername("admin");
        user.setPassword("123456");

        ValidatorFactory validatorFactory = Validation.buildDefaultValidatorFactory();
        Validator validator = validatorFactory.getValidator();
        Set<ConstraintViolation<User>> violations = validator.validate(user);

        for (ConstraintViolation<User> violation : violations) {
            System.out.println(violation.getMessage());
        }
    }
}

Dalam kod di atas, kita mula-mula mencipta objek Pengguna, dan kemudian menggunakan kaedah buildDefaultValidatorFactory() kelas Pengesahan untuk mendapatkan pengesahan Objek kilang daripada pengesah, dan kemudian dapatkan pengesah melalui objek kilang. Akhir sekali, gunakan pengesah untuk mengesahkan objek Pengguna dan mencetak maklumat yang melanggar peraturan pengesahan.

3. Pemformatan medan

Selain pengesahan, kadangkala kita juga perlu memformat medan borang, seperti memformat nombor telefon mudah alih ke dalam xxx-xxxx-xxxx, atau memformat tarikh ke dalam borang yyyy-MM- dd, dsb.

Di Java, kita boleh menggunakan kelas SimpleDateFormat untuk memformat tarikh, contohnya:

import java.text.*;
import java.util.*;

public class Main {

    public static void main(String[] args) {
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        Date date = new Date();
        String formattedDate = format.format(date);
        System.out.println(formattedDate);
    }
}

Dalam kod di atas, kita mencipta objek pemformatan tarikh melalui kelas SimpleDateFormat, dan kemudian memanggil kaedah format() untuk memformat tarikh The objek diformatkan ke dalam format rentetan yang ditentukan.

Untuk jenis medan lain, kami boleh menggunakan beberapa kaedah pemprosesan rentetan untuk pemformatan, seperti menggunakan kaedah substring() untuk memisahkan nombor telefon mudah alih:

String phoneNumber = "15812345678";
String formattedNumber = phoneNumber.substring(0, 3) + "-" +
                        phoneNumber.substring(3, 7) + "-" +
                        phoneNumber.substring(7, 11);
System.out.println(formattedNumber);

Dalam kod di atas, kami menggunakan kaedah substring() untuk memisahkan Mudah Alih nombor telefon diasingkan mengikut format yang ditetapkan.

Melalui contoh di atas, kita dapat melihat bahawa Java menyediakan pelbagai kaedah untuk mengesahkan dan memformat medan borang. Berdasarkan keperluan sebenar, memilih kaedah yang sesuai boleh memudahkan pembangunan dan meningkatkan kecekapan. Dalam aplikasi praktikal, kami juga boleh menggabungkan pengesahan bahagian hadapan dan pengesahan bahagian belakang untuk memastikan keselamatan dan ketepatan input borang.

Atas ialah kandungan terperinci Java melaksanakan pengesahan dan pemformatan medan borang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn