Hướng dẫn which is the correct syntax for email validation in html 5? - cú pháp chính xác để xác thực email trong html 5 là gì?

Hình thức xác thực bằng HTML5:

Một trong những giá trị mới cho thuộc tính loại là email. Sử dụng loại trường này thay vì trường văn bản thông thường, trình duyệt sử dụng biểu thức thông thường để kiểm tra xem người dùng có thực sự được nhập vào địa chỉ email không. Điều này có nghĩa là người dùng không thể nhập địa chỉ email giả? Không. Nhưng bạn không phải lo lắng rằng người dùng gõ dấu phẩy thay vì một khoảng thời gian hoặc cô ấy vô tình gõ một không gian. Bất kể người dùng sẽ gửi gì, nó sẽ trông giống như một địa chỉ email. Đây là vẻ ngoài của nó:


Một số trình duyệt chỉ tìm kiếm @ và các trình duyệt khác tìm kiếm mẫu bao gồm một @ theo sau là ít nhất một chữ cái và một dấu chấm.

Tính đến thời điểm hiện tại, điều này không được hỗ trợ bởi ví dụ: Internet Explorer 9.0 và phiên bản trước hoặc bởi Trình duyệt Android. Điều này có nghĩa là để có xác thực email hợp lệ cho các trình duyệt này, bạn sẽ phải tạo một công việc xung quanh để có tính năng này hoạt động trong tất cả các trình duyệt. Điều này không có nghĩa là bạn không nên thực hiện email thuộc tính, bởi vì nếu trình duyệt không đăng ký lại type = "email", nó sẽ chỉ coi là loại = "văn bản" và hiển thị nó dưới dạng văn bản đơn giản.

Sử dụng các mẫu để xác nhận địa chỉ email

Một cách khác để xác thực địa chỉ email là sử dụng thuộc tính mẫu. Như đã đề cập trong chương về các mẫu, mẫu có thể là bất cứ điều gì bạn chỉ định và nó dựa trên các biểu thức thông thường. Tôi sẽ không đi sâu hơn vào chủ đề của các biểu hiện thông thường vì đây là một chủ đề rất toàn diện.

Tất cả những gì bạn cần biết để sử dụng các mẫu để xác nhận địa chỉ email là mẫu nào sẽ sử dụng. Biểu thức thông thường địa chỉ email HTML5 sau đây gần với một ví dụ hoàn chỉnh về mẫu của bạn có thể trông như thế nào. (Cảm ơn Gervase Markham). Đây là những gì mẫu trông như thế nào:

/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/

Như bạn có thể thấy mẫu khá phức tạp, nhưng về cơ bản, nó kiểm tra xem đầu vào người dùng có trông giống như một địa chỉ email thông thường như


Gõ = "email" hoặc mẫu?

Vì cả hai cách xác nhận địa chỉ email đều có ưu và nhược điểm của họ, tùy thuộc vào bạn để quyết định sử dụng cái nào. Bạn không nên cố gắng sử dụng cả hai cùng một lúc vì điều này có thể tạo ra một cuộc đụng độ trong các trình duyệt hỗ trợ cả hai tính năng. Sử dụng Type = "Email" có lợi thế là chính xác về mặt ngữ nghĩa khi sử dụng thuộc tính mẫu có lợi thế là có một số polyfills dễ sử dụng trên web để đảm bảo hỗ trợ cho phạm vi đối tượng lớn hơn.

Những gì bạn đã học được

  • Sử dụng HTML5, cách xác thực địa chỉ email chính xác về mặt ngữ nghĩa là đặt thuộc tính loại thành email, gõ = "email"
  • Không phải tất cả các trình duyệt đều tìm kiếm cùng một mẫu khi xác thực địa chỉ email
  • Bạn cũng có thể sử dụng thuộc tính mẫu để xác thực địa chỉ email
  • Loại = "Email" đảm bảo HTML5 chính xác về mặt ngữ nghĩa trong đó thuộc tính mẫu có thể đảm bảo địa chỉ email hợp lệ thường xuyên hơn
  • Thuộc tính mẫu có thể được hỗ trợ bằng cách sử dụng polyfill

Bài viết này đã được dịch đầy đủ sang các ngôn ngữ sau:

  • tiếng Đức
  • người Tây Ban Nha
  • Thái

Ngôn ngữ ưa thích của bạn không có trong danh sách? Nhấn vào đây để giúp chúng tôi dịch bài viết này sang ngôn ngữ của bạn!


/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/
4 Các yếu tố của loại
/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/
5 được sử dụng để cho phép người dùng nhập và chỉnh sửa địa chỉ e-mail, hoặc, nếu thuộc tính
/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/
6 được chỉ định, một danh sách các địa chỉ e-mail.
/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/
5
are used to let the user enter and edit an e-mail address, or, if the
/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/
6 attribute is specified, a list of e-mail addresses.

Thử nó

Giá trị đầu vào được tự động xác thực để đảm bảo rằng nó trống hoặc địa chỉ email được định dạng đúng (hoặc danh sách địa chỉ) trước khi biểu mẫu có thể được gửi. Các lớp giả

/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/
7 và
/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/
8 CSS được tự động áp dụng khi thích hợp để biểu thị trực quan liệu giá trị hiện tại của trường có phải là địa chỉ e-mail hợp lệ hay không.

Trên các trình duyệt không hỗ trợ đầu vào loại

/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/
5, đầu vào
/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/
5 rơi trở lại là một đầu vào văn bản tiêu chuẩn.

Giá trị

Thuộc tính


2 của phần tử
/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/
4 chứa một chuỗi được xác thực tự động là phù hợp với cú pháp e-mail. Cụ thể hơn, có ba định dạng giá trị có thể sẽ vượt qua xác thực:

  1. Một chuỗi trống ("") chỉ ra rằng người dùng không nhập giá trị hoặc giá trị đã bị xóa.
  2. Một địa chỉ e-mail được hình thành đúng cách. Điều này không nhất thiết có nghĩa là địa chỉ e-mail tồn tại, nhưng ít nhất nó được định dạng chính xác. Nói một cách đơn giản, điều này có nghĩa là

    3 hoặc

    4. Tất nhiên, có nhiều thứ hơn thế; Xem xác thực cho một biểu thức chính quy phù hợp với thuật toán xác thực địa chỉ e-mail.
  3. Nếu và chỉ khi thuộc tính
    /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/
    6 được chỉ định, giá trị có thể là danh sách các địa chỉ e-mail được phân tách bằng dấu phẩy được hình thành đúng. Bất kỳ dấu vết nào và khoảng trắng hàng đầu đều được xóa khỏi mỗi địa chỉ trong danh sách.

Xem Xác thực để biết chi tiết về cách địa chỉ e-mail được xác thực để đảm bảo rằng chúng được định dạng đúng.

Thuộc tính bổ sung

Ngoài các thuộc tính hoạt động trên tất cả các yếu tố

/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/
4 bất kể loại của chúng,
/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/
5 đầu vào hỗ trợ các thuộc tính sau.

danh sách

Các giá trị của thuộc tính danh sách là


8 của phần tử

9 nằm trong cùng một tài liệu.

9 cung cấp một danh sách các giá trị được xác định trước để đề xuất cho người dùng cho đầu vào này. Bất kỳ giá trị nào trong danh sách không tương thích với
<input id="emailAddress" type="email" />
1 không được bao gồm trong các tùy chọn được đề xuất. Các giá trị được cung cấp là các đề xuất, không phải yêu cầu: Người dùng có thể chọn từ danh sách được xác định trước này hoặc cung cấp một giá trị khác.

Maxlength

Số lượng ký tự tối đa (như đơn vị mã UTF-16) Người dùng có thể nhập vào đầu vào

/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/
5. Đây phải là một giá trị số nguyên 0 hoặc cao hơn. Nếu không có
<input id="emailAddress" type="email" />
3 được chỉ định hoặc giá trị không hợp lệ được chỉ định, đầu vào
/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/
5 không có độ dài tối đa. Giá trị này cũng phải lớn hơn hoặc bằng giá trị của
<input id="emailAddress" type="email" />
5.

Đầu vào sẽ không thành công xác thực ràng buộc nếu độ dài của giá trị văn bản của trường lớn hơn

<input id="emailAddress" type="email" />
3 Đơn vị mã UTF-16 dài. Xác thực ràng buộc chỉ được áp dụng khi người dùng thay đổi giá trị.

Độ dài nhỏ nhất

Số lượng ký tự tối thiểu (như các đơn vị mã UTF-16) Người dùng có thể nhập vào đầu vào

/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/
5. Đây phải là một giá trị số nguyên không âm nhỏ hơn hoặc bằng giá trị được chỉ định bởi
<input id="emailAddress" type="email" />
3. Nếu không có
<input id="emailAddress" type="email" />
5 được chỉ định hoặc giá trị không hợp lệ được chỉ định, đầu vào
/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/
5 không có độ dài tối thiểu.

Đầu vào sẽ không thành công xác thực ràng buộc nếu độ dài của văn bản nhập vào trường ít hơn

<input id="emailAddress" type="email" />
5 Đơn vị mã UTF-16 dài. Xác thực ràng buộc chỉ được áp dụng khi người dùng thay đổi giá trị.

nhiều

Một thuộc tính Boolean, nếu có, chỉ ra rằng người dùng có thể nhập danh sách nhiều địa chỉ e-mail, được phân tách bằng dấu phẩy và, tùy chọn, các ký tự khoảng trắng. Xem cho phép nhiều địa chỉ e-mail cho một ví dụ hoặc thuộc tính HTML: Nhiều chi tiết để biết thêm chi tiết.

Lưu ý: Thông thường, nếu bạn chỉ định thuộc tính

<input id="emailAddress" type="email" multiple />
2, người dùng phải nhập địa chỉ e-mail hợp lệ để trường được coi là hợp lệ. Tuy nhiên, nếu bạn thêm thuộc tính
/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/
6, danh sách các địa chỉ e-mail bằng 0 (một chuỗi trống hoặc một loại hoàn toàn là khoảng trắng) là một giá trị hợp lệ. Nói cách khác, người dùng không phải nhập ngay cả một địa chỉ e-mail khi
/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/
6 được chỉ định, bất kể giá trị của
<input id="emailAddress" type="email" multiple />
2.
Normally, if you specify the
<input id="emailAddress" type="email" multiple />
2 attribute, the user must enter a valid e-mail address for the field to be considered valid. However, if you add the
/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/
6 attribute, a list of zero e-mail addresses (an empty string, or one which is entirely whitespace) is a valid value. In other words, the user does not have to enter even one e-mail address when
/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/
6 is specified, regardless of the value of
<input id="emailAddress" type="email" multiple />
2.

họa tiết

Thuộc tính

<input id="emailAddress" type="email" multiple />
6, khi được chỉ định, là một biểu thức thông thường mà

2 của đầu vào phải khớp để giá trị vượt qua xác thực ràng buộc. Nó phải là một biểu thức thông thường JavaScript hợp lệ, như được sử dụng bởi loại
<input id="emailAddress" type="email" multiple />
8 và như được ghi lại trong hướng dẫn của chúng tôi về các biểu thức thông thường; Cờ
<input id="emailAddress" type="email" multiple />
9 được chỉ định khi biên dịch biểu thức chính quy, để mẫu được coi là một chuỗi các điểm mã Unicode, thay vì ASCII. Không có dấu gạch chéo phía trước nên được chỉ định xung quanh văn bản mẫu.

Nếu mẫu được chỉ định không được chỉ định hoặc không hợp lệ, không có biểu thức chính quy nào được áp dụng và thuộc tính này bị bỏ qua hoàn toàn.

Lưu ý: Sử dụng thuộc tính

<input type="email" placeholder="" />
0 để chỉ định văn bản mà hầu hết các trình duyệt sẽ hiển thị dưới dạng công cụ để giải thích các yêu cầu là gì để phù hợp với mẫu. Bạn cũng nên bao gồm văn bản giải thích khác gần đó. Use the
<input type="email" placeholder="" />
0 attribute to specify text that most browsers will display as a tooltip to explain what the requirements are to match the pattern. You should also include other explanatory text nearby.

Xem phần Xác thực mẫu để biết chi tiết và một ví dụ.

1

Thuộc tính

<input type="email" placeholder="" />
1 là một chuỗi cung cấp một gợi ý ngắn gọn cho người dùng về loại thông tin nào được mong đợi trong trường. Nó phải là một từ hoặc cụm từ ngắn thể hiện loại dữ liệu dự kiến, thay vì một thông điệp giải thích. Văn bản không được bao gồm trả lại vận chuyển hoặc nguồn cấp dữ liệu.

Nếu nội dung của điều khiển có một hướng (LTR hoặc RTL) nhưng cần trình bày trình giữ chỗ theo hướng ngược lại, bạn có thể sử dụng các ký tự định dạng thuật toán nhị phân Unicode để ghi đè tính định hướng trong trình giữ chỗ; Xem cách sử dụng các điều khiển Unicode cho văn bản BIDI để biết thêm thông tin.

Lưu ý: Tránh sử dụng thuộc tính

<input type="email" placeholder="" />
1 nếu bạn có thể. Nó không hữu ích về mặt ngữ nghĩa như các cách khác để giải thích biểu mẫu của bạn và có thể gây ra các vấn đề kỹ thuật bất ngờ với nội dung của bạn. Xem nhãn và trình giữ chỗ trong: Phần tử đầu vào (đầu vào hình thức) để biết thêm thông tin. Avoid using the
<input type="email" placeholder="" />
1 attribute if you can. It is not as semantically useful as other ways to explain your form, and can cause unexpected technical issues with your content. See Labels and placeholders in : The Input (Form Input) element for more information.

4

Một thuộc tính Boolean, nếu có, có nghĩa là trường này không thể được chỉnh sửa bởi người dùng. Tuy nhiên,


2 của nó vẫn có thể được thay đổi bằng mã JavaScript trực tiếp đặt thuộc tính
<input type="email" placeholder="" />
6

2.

Lưu ý: Vì trường chỉ đọc không thể có giá trị,

<input id="emailAddress" type="email" multiple />
2 không có bất kỳ ảnh hưởng nào đến đầu vào với thuộc tính
<input type="email" placeholder="" />
4 cũng được chỉ định.
Because a read-only field cannot have a value,
<input id="emailAddress" type="email" multiple />
2 does not have any effect on inputs with the
<input type="email" placeholder="" />
4 attribute also specified.

0

Thuộc tính

<input type="email" size="15" />
0 là một giá trị số cho biết trường đầu vào rộng bao nhiêu ký tự. Giá trị phải là một số lớn hơn 0 và giá trị mặc định là 20. Vì độ rộng của ký tự khác nhau, điều này có thể hoặc không chính xác và không nên dựa vào như vậy; Đầu vào thu được có thể hẹp hơn hoặc rộng hơn số lượng ký tự được chỉ định, tùy thuộc vào các ký tự và phông chữ (cài đặt
<input type="email" size="15" />
2 đang sử dụng).

Điều này không đặt giới hạn về số lượng ký tự người dùng có thể nhập vào trường. Nó chỉ chỉ định xấp xỉ số lượng có thể được nhìn thấy tại một thời điểm. Để đặt giới hạn trên về độ dài của dữ liệu đầu vào, hãy sử dụng thuộc tính

<input id="emailAddress" type="email" />
3.

Sử dụng đầu vào email

Địa chỉ e-mail là một trong những biểu mẫu dữ liệu văn bản được phát hành thường xuyên nhất trên web; Chúng được sử dụng khi đăng nhập vào các trang web, khi yêu cầu thông tin, để cho phép xác nhận đặt hàng, cho webmail, v.v. Do đó, loại đầu vào

/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/
5 có thể giúp công việc của bạn là nhà phát triển web dễ dàng hơn nhiều vì nó có thể giúp đơn giản hóa công việc của bạn khi xây dựng giao diện người dùng và logic cho địa chỉ e-mail. Khi bạn tạo một đầu vào email với giá trị
<input id="emailAddress" type="email" />
1 thích hợp,
/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/
5, bạn sẽ nhận được xác thực tự động rằng văn bản đã nhập ít nhất ở dạng chính xác để có khả năng là địa chỉ email hợp pháp. Điều này có thể giúp tránh các trường hợp trong đó người dùng nhầm địa chỉ của họ hoặc cung cấp một địa chỉ không hợp lệ.

Tuy nhiên, điều quan trọng cần lưu ý là điều này không đủ để đảm bảo rằng văn bản được chỉ định là địa chỉ e-mail thực sự tồn tại, tương ứng với người dùng của trang web hoặc được chấp nhận theo bất kỳ cách nào khác. Nó đảm bảo rằng giá trị của trường được định dạng đúng là địa chỉ e-mail.

Lưu ý: Điều quan trọng là phải nhớ rằng người dùng có thể sửa đổi HTML của bạn đằng sau hậu trường, vì vậy trang web của bạn không được sử dụng xác thực này cho bất kỳ mục đích bảo mật nào. Bạn phải xác minh địa chỉ e-mail ở phía máy chủ của bất kỳ giao dịch nào trong đó văn bản được cung cấp có thể có bất kỳ ý nghĩa bảo mật nào của bất kỳ loại nào. It's also crucial to remember that a user can tinker with your HTML behind the scenes, so your site must not use this validation for any security purposes. You must verify the e-mail address on the server side of any transaction in which the provided text may have any security implications of any kind.

Một đầu vào email đơn giản

Hiện tại, tất cả các trình duyệt thực hiện phần tử này thực hiện nó như một trường đầu vào văn bản tiêu chuẩn với các tính năng xác thực cơ bản. Tuy nhiên, đặc điểm kỹ thuật cho phép trình duyệt vĩ độ về điều này. Ví dụ: phần tử có thể được tích hợp với sổ địa chỉ tích hợp của thiết bị của người dùng để cho phép chọn địa chỉ e-mail từ danh sách đó. Ở dạng cơ bản nhất, đầu vào

/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/
5 có thể được thực hiện như thế này:

<input id="emailAddress" type="email" />

Lưu ý rằng nó được coi là hợp lệ khi trống và khi một địa chỉ email được định dạng hợp lệ được nhập, nhưng nếu không thì không được coi là hợp lệ. Bằng cách thêm thuộc tính

<input id="emailAddress" type="email" multiple />
2, chỉ cho phép các địa chỉ e-mail được hình thành hợp lệ; Đầu vào không còn được coi là hợp lệ khi trống.

Cho phép nhiều địa chỉ e-mail

Bằng cách thêm thuộc tính boolean

/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/
6, đầu vào có thể được cấu hình để chấp nhận nhiều địa chỉ e-mail.

<input id="emailAddress" type="email" multiple />

Đầu vào hiện được coi là hợp lệ khi một địa chỉ e-mail duy nhất được nhập hoặc khi bất kỳ số lượng địa chỉ e-mail nào được phân tách bằng dấu phẩy và, tùy chọn, một số ký tự khoảng trắng có mặt.

Lưu ý: Khi

/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/
6 được sử dụng, giá trị được phép trống. When
/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/
6 is used, the value is allowed to be empty.

Một số ví dụ về các chuỗi hợp lệ khi

/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/
6 được chỉ định:

  • <input type="email" size="32" minlength="3" maxlength="64" />
    
    2
  • <input type="email" size="32" minlength="3" maxlength="64" />
    
    3
  • <input type="email" size="32" minlength="3" maxlength="64" />
    
    2
  • <input type="email" size="32" minlength="3" maxlength="64" />
    
    5
  • <input type="email" size="32" minlength="3" maxlength="64" />
    
    6
  • <input type="email" size="32" minlength="3" maxlength="64" />
    
    7

Một số ví dụ về các chuỗi không hợp lệ:

  • <input type="email" size="32" minlength="3" maxlength="64" />
    
    5
  • <input type="email" size="32" minlength="3" maxlength="64" />
    
    9
  • <input type="email" value="" />
    
    0

Người giữ chỗ

Đôi khi, thật hữu ích khi cung cấp một gợi ý trong bối cảnh về những gì hình thành dữ liệu đầu vào nên lấy. Điều này có thể đặc biệt quan trọng nếu thiết kế trang không cung cấp nhãn mô tả cho mỗi

/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/
4. Đây là nơi giữ chỗ đến. Một trình giữ chỗ là một giá trị thể hiện dạng

2 nên lấy bằng cách trình bày một ví dụ về giá trị hợp lệ, được hiển thị bên trong hộp chỉnh sửa khi phần tử ____22 là "". Khi dữ liệu được nhập vào hộp, người giữ chỗ sẽ biến mất; Nếu hộp được làm trống, người giữ chỗ sẽ xuất hiện trở lại.placeholders come in. A placeholder is a value that demonstrates the form the

2 should take by presenting an example of a valid value, which is displayed inside the edit box when the element's

2 is "". Once data is entered into the box, the placeholder disappears; if the box is emptied, the placeholder reappears.

Ở đây, chúng tôi có đầu vào

/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/
5 với trình giữ chỗ

4. Lưu ý cách người giữ chỗ biến mất và xuất hiện lại khi bạn thao tác nội dung của trường chỉnh sửa.

<input type="email" placeholder="" />

Kiểm soát kích thước đầu vào

Bạn có thể kiểm soát không chỉ độ dài vật lý của hộp đầu vào, mà cả độ dài tối thiểu và tối đa cho phép cho chính văn bản đầu vào.

Kích thước phần tử đầu vào vật lý

Kích thước vật lý của hộp đầu vào có thể được kiểm soát bằng thuộc tính

<input type="email" size="15" />
0. Với nó, bạn có thể chỉ định số lượng ký tự mà hộp đầu vào có thể hiển thị tại một thời điểm. Trong ví dụ này, hộp chỉnh sửa
/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/
5 rộng 15 ký tự:

<input type="email" size="15" />

Độ dài giá trị phần tử

<input type="email" size="15" />
0 tách biệt với giới hạn độ dài trên chính địa chỉ e-mail đã nhập để bạn có thể có các trường phù hợp trong một không gian nhỏ trong khi vẫn cho phép các chuỗi địa chỉ e-mail dài hơn được nhập. Bạn có thể chỉ định độ dài tối thiểu, tính theo ký tự, cho địa chỉ e-mail đã nhập bằng thuộc tính
<input id="emailAddress" type="email" />
5; Tương tự, sử dụng
<input id="emailAddress" type="email" />
3 để đặt độ dài tối đa của địa chỉ e-mail đã nhập.

Ví dụ dưới đây tạo ra một hộp nhập địa chỉ e-mail rộng 32 ký tự, yêu cầu nội dung không ngắn hơn 3 ký tự và không quá 64 ký tự.

<input type="email" size="32" minlength="3" maxlength="64" />

Cung cấp các tùy chọn mặc định

Cung cấp một mặc định bằng cách sử dụng thuộc tính giá trị

Như mọi khi, bạn có thể cung cấp giá trị mặc định cho hộp nhập

/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/
5 bằng cách đặt thuộc tính

2 của nó:

<input type="email" value="" />

Cung cấp các giá trị đề xuất

Đưa nó thêm một bước nữa, bạn có thể cung cấp một danh sách các tùy chọn mặc định mà người dùng có thể chọn bằng cách chỉ định thuộc tính

<input type="email" size="40" list="defaultEmails" />

<datalist id="defaultEmails">
  <option value="">option>
  <option value="">option>
  <option value="">option>
  <option value="">option>
  <option value="">option>
datalist>
3. Điều này không giới hạn người dùng đối với các tùy chọn đó, nhưng cho phép họ chọn địa chỉ e-mail thường được sử dụng nhanh hơn. Điều này cũng cung cấp gợi ý cho
<input type="email" size="40" list="defaultEmails" />

<datalist id="defaultEmails">
  <option value="">option>
  <option value="">option>
  <option value="">option>
  <option value="">option>
  <option value="">option>
datalist>
4. Thuộc tính
<input type="email" size="40" list="defaultEmails" />

<datalist id="defaultEmails">
  <option value="">option>
  <option value="">option>
  <option value="">option>
  <option value="">option>
  <option value="">option>
datalist>
3 chỉ định ID của

9, từ đó chứa một phần tử
<input type="email" size="40" list="defaultEmails" />

<datalist id="defaultEmails">
  <option value="">option>
  <option value="">option>
  <option value="">option>
  <option value="">option>
  <option value="">option>
datalist>
7 cho mỗi giá trị được đề xuất; Mỗi ________ 98's

2 là giá trị được đề xuất tương ứng cho hộp nhập email.

<input type="email" size="40" list="defaultEmails" />

<datalist id="defaultEmails">
  <option value="">option>
  <option value="">option>
  <option value="">option>
  <option value="">option>
  <option value="">option>
datalist>

Với phần tử


9 và các ____997 của nó, trình duyệt sẽ cung cấp các giá trị được chỉ định làm giá trị tiềm năng cho địa chỉ e-mail; Đây thường được trình bày dưới dạng menu bật lên hoặc thả xuống có chứa các đề xuất. Mặc dù trải nghiệm người dùng cụ thể có thể thay đổi từ trình duyệt này sang trình duyệt khác, nhưng thường nhấp vào hộp Chỉnh sửa trình bày một bản phát xuống của các địa chỉ e-mail được đề xuất. Sau đó, như các loại người dùng, danh sách được lọc để chỉ hiển thị các giá trị phù hợp. Mỗi ký tự được gõ thu hẹp danh sách cho đến khi người dùng thực hiện lựa chọn hoặc nhập giá trị tùy chỉnh.

Thẩm định

Có hai cấp độ xác thực nội dung có sẵn cho các đầu vào

/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/
5. Đầu tiên, có mức xác thực tiêu chuẩn được cung cấp cho tất cả các
/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/
4, điều này tự động đảm bảo rằng nội dung đáp ứng các yêu cầu là địa chỉ e-mail hợp lệ. Nhưng cũng có tùy chọn để thêm bộ lọc bổ sung để đảm bảo rằng các nhu cầu chuyên môn của bạn được đáp ứng, nếu bạn có bất kỳ.

CẢNH BÁO: Xác thực biểu mẫu HTML không phải là một sự thay thế cho các tập lệnh đảm bảo rằng dữ liệu đã nhập ở định dạng thích hợp. Thật dễ dàng để ai đó điều chỉnh HTML cho phép họ bỏ qua xác thực hoặc xóa hoàn toàn. Ai đó cũng có thể bỏ qua hoàn toàn HTML của bạn và gửi dữ liệu trực tiếp đến máy chủ của bạn. Nếu mã phía máy chủ của bạn không xác thực dữ liệu mà nó nhận được, thảm họa có thể tấn công khi dữ liệu được định dạng không đúng (hoặc dữ liệu quá lớn, là loại sai, và vv) được nhập vào cơ sở dữ liệu của bạn. HTML form validation is not a substitute for scripts that ensure that the entered data is in the proper format.It's far too easy for someone to make adjustments to the HTML that allow them to bypass the validation, or to remove it completely. It's also possible for someone to bypass your HTML entirely and submit the data directly to your server. If your server-side code fails to validate the data it receives, disaster could strike when improperly-formatted data (or data which is too large, is of the wrong type, and so forth) is entered into your database.

Xác nhận cơ bản

Các trình duyệt hỗ trợ loại đầu vào

/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/
5 tự động cung cấp xác thực để đảm bảo rằng chỉ văn bản phù hợp với định dạng tiêu chuẩn cho địa chỉ e-mail Internet được nhập vào hộp đầu vào. Các trình duyệt thực hiện đặc tả nên sử dụng thuật toán tương đương với biểu thức chính quy sau:

/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/
0

Để tìm hiểu thêm về cách thức xác thực biểu mẫu hoạt động và cách tận dụng các thuộc tính

/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/
7 và
/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/
8 CSS để tạo kiểu đầu vào dựa trên việc giá trị hiện tại có hợp lệ hay không, hãy xem Xác thực dữ liệu biểu mẫu.

Lưu ý: Có các vấn đề đặc điểm kỹ thuật đã biết liên quan đến tên miền quốc tế và xác thực các địa chỉ e-mail trong HTML. Xem W3C Bug 15489 để biết chi tiết. There are known specification issues related to international domain names and the validation of e-mail addresses in HTML. See W3C bug 15489 for details.

Xác thực mẫu

Nếu bạn cần địa chỉ e-mail đã nhập để bị hạn chế hơn là "bất kỳ chuỗi nào trông giống như địa chỉ e-mail", bạn có thể sử dụng thuộc tính

<input id="emailAddress" type="email" multiple />
6 để chỉ định biểu thức chính quy, giá trị phải khớp với nó hợp lệ. Nếu thuộc tính
/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/
6 được chỉ định, mỗi mục riêng lẻ trong danh sách các giá trị được phân hủy bằng dấu phẩy phải phù hợp với biểu thức thông thường.

Ví dụ: giả sử bạn đang xây dựng một trang cho các nhân viên của Best Startup Ever, Inc., điều này sẽ cho phép họ liên hệ với bộ phận CNTT của họ để được giúp đỡ. Trong mẫu đơn giản hóa của chúng tôi, người dùng cần nhập địa chỉ e-mail của họ và một thông báo mô tả vấn đề họ cần giúp đỡ. Chúng tôi muốn đảm bảo rằng người dùng không chỉ cung cấp địa chỉ e-mail hợp lệ mà còn cho các mục đích bảo mật, chúng tôi yêu cầu địa chỉ là địa chỉ email của công ty nội bộ.

Vì các đầu vào của loại

/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/
5 xác nhận đối với cả xác thực địa chỉ e-mail tiêu chuẩn và
<input id="emailAddress" type="email" multiple />
6 được chỉ định, bạn có thể thực hiện điều này một cách dễ dàng. Hãy xem làm thế nào:

/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/
1

/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/
2

/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/
11 của chúng tôi chứa một
/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/
4 loại
/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/
5 cho địa chỉ e-mail của người dùng,
/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/
14 để nhập tin nhắn của họ cho nó vào và
/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/
4 loại
/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/
16, tạo nút để gửi biểu mẫu. Mỗi hộp nhập văn bản có một
/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/
17 liên kết với nó để cho người dùng biết những gì mong đợi ở họ.

Chúng ta hãy xem xét kỹ hơn về hộp nhập địa chỉ e-mail. Các thuộc tính

<input type="email" size="15" />
0 và
<input id="emailAddress" type="email" />
3 của nó đều được đặt thành 64 để hiển thị phòng cho địa chỉ email trị giá 64 ký tự và để giới hạn số lượng ký tự thực sự được nhập tối đa là 64. Thuộc tính
<input id="emailAddress" type="email" multiple />
2 được chỉ định một địa chỉ e-mail hợp lệ được cung cấp.

Một

<input type="email" placeholder="" />
1 thích hợp được cung cấp. Chuỗi này cho thấy cả hai địa chỉ e-mail nên được nhập và cho thấy rằng đó phải là một tài khoản BestStartupever.com của công ty. Điều này ngoài thực tế là sử dụng loại
/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/
5 sẽ xác nhận văn bản để đảm bảo rằng nó được định dạng giống như một địa chỉ e-mail. Nếu văn bản trong hộp đầu vào không phải là địa chỉ e-mail, bạn sẽ nhận được thông báo lỗi trông giống như thế này:

Hướng dẫn which is the correct syntax for email validation in html 5? - cú pháp chính xác để xác thực email trong html 5 là gì?

Nếu chúng ta để lại mọi thứ, ít nhất chúng ta sẽ xác nhận trên các địa chỉ e-mail hợp pháp. Nhưng chúng tôi muốn đi một bước xa hơn: chúng tôi muốn đảm bảo rằng địa chỉ e-mail trên thực tế là ở dạng "". Đây là nơi chúng tôi sẽ sử dụng

<input id="emailAddress" type="email" multiple />
6. Chúng tôi đặt
<input id="emailAddress" type="email" multiple />
6 thành
/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/
26. Biểu thức chính quy đơn giản này yêu cầu một chuỗi bao gồm ít nhất một ký tự dưới bất kỳ hình thức nào, sau đó là "@" theo sau là tên miền "BestStartupever.com".

Lưu ý rằng điều này thậm chí không gần với bộ lọc đầy đủ cho các địa chỉ e-mail hợp lệ; Nó sẽ cho phép những thứ như "@BestStartupever.com" (lưu ý không gian hàng đầu) hoặc "@@ beststartupever.com", không có gì hợp lệ. Tuy nhiên, trình duyệt chạy cả bộ lọc địa chỉ e-mail tiêu chuẩn và mẫu tùy chỉnh của chúng tôi so với văn bản được chỉ định. Do đó, chúng tôi kết thúc với một xác nhận nói rằng "đảm bảo điều này giống như một địa chỉ e-mail hợp lệ và nếu có, hãy chắc chắn rằng đó cũng là địa chỉ BestStartupever.com."

Nên sử dụng thuộc tính

<input type="email" placeholder="" />
0 cùng với
<input id="emailAddress" type="email" multiple />
6. Nếu bạn làm,
<input type="email" placeholder="" />
0 phải mô tả mẫu. Đó là, nó sẽ giải thích định dạng dữ liệu nào sẽ đảm nhận, thay vì bất kỳ thông tin nào khác. Đó là bởi vì
<input type="email" placeholder="" />
0 có thể được hiển thị hoặc nói như là một phần của thông báo lỗi xác thực. Ví dụ: trình duyệt có thể trình bày thông báo "văn bản đã nhập không khớp với mẫu bắt buộc." tiếp theo là
<input type="email" placeholder="" />
0 được chỉ định của bạn. Nếu
<input type="email" placeholder="" />
0 của bạn giống như "địa chỉ e-mail", kết quả sẽ là thông báo "văn bản đã nhập không khớp với mẫu yêu cầu. Địa chỉ e-mail", không tốt lắm.

Đó là lý do tại sao, thay vào đó, chúng tôi chỉ định chuỗi "Vui lòng chỉ cung cấp một địa chỉ e-mail công ty tốt nhất từ ​​trước đến nay" bằng cách đó, thông báo lỗi đầy đủ có thể giống như "văn bản đã nhập không khớp với mẫu yêu cầu. Chỉ có một công ty khởi nghiệp tốt nhất từ ​​trước đến nay địa chỉ e-mail của công ty. "

Hướng dẫn which is the correct syntax for email validation in html 5? - cú pháp chính xác để xác thực email trong html 5 là gì?

Lưu ý: Nếu bạn gặp rắc rối trong khi viết các biểu thức chính quy xác thực của mình và chúng không hoạt động đúng, hãy kiểm tra bảng điều khiển của trình duyệt; Có thể có thông báo lỗi hữu ích ở đó để hỗ trợ bạn giải quyết vấn đề. If you run into trouble while writing your validation regular expressions and they're not working properly, check your browser's console; there may be helpful error messages there to aid you in solving the problem.

Ví dụ

Ở đây chúng tôi có một đầu vào email với ID

/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/
33 được phép dài tối đa 256 ký tự. Bản thân hộp đầu vào rộng 64 ký tự và hiển thị văn bản

4 dưới dạng trình giữ chỗ bất cứ khi nào trường trống. Ngoài ra, bằng cách sử dụng thuộc tính
/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/
6, hộp được cấu hình để cho phép người dùng nhập địa chỉ e-mail bằng 0 hoặc nhiều hơn, được phân tách bằng dấu phẩy, như được mô tả trong việc cho phép nhiều địa chỉ e-mail. Là một liên lạc cuối cùng, thuộc tính
<input type="email" size="40" list="defaultEmails" />

<datalist id="defaultEmails">
  <option value="">option>
  <option value="">option>
  <option value="">option>
  <option value="">option>
  <option value="">option>
datalist>
3 chứa ID của

9 có
<input type="email" size="40" list="defaultEmails" />

<datalist id="defaultEmails">
  <option value="">option>
  <option value="">option>
  <option value="">option>
  <option value="">option>
  <option value="">option>
datalist>
7S chỉ định một tập hợp các giá trị được đề xuất mà người dùng có thể chọn.

Như một liên lạc bổ sung, phần tử

/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/
17 được sử dụng để thiết lập nhãn cho hộp nhập email, với thuộc tính
/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/
40 tham chiếu ID
/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/
33 của phần tử
/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/
4. Bằng cách liên kết hai yếu tố theo cách này, nhấp vào nhãn sẽ tập trung phần tử đầu vào.

/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/
3

Thông số kỹ thuật

Sự chỉ rõ
HTML Tiêu chuẩn # Email State- (Type = Email)
# email-state-(type=email)

Tính tương thích của trình duyệt web

Bảng BCD chỉ tải trong trình duyệt

Xem thêm

Cú pháp chính xác để xác thực trong trường email trong HTML là gì?

Xác định một trường cho một địa chỉ e-mail. Giá trị đầu vào được tự động xác thực để đảm bảo nó là địa chỉ e-mail được định dạng đúng. Để xác định trường e-mail cho phép nhiều địa chỉ e-mail, hãy thêm thuộc tính "Nhiều". defines a field for an e-mail address. The input value is automatically validated to ensure it is a properly formatted e-mail address. To define an e-mail field that allows multiple e-mail addresses, add the "multiple" attribute.

Xác thực biểu mẫu HTML5 là gì?

Với HTML5, xác thực biểu mẫu là một tính năng tích hợp.Có nhiều thuộc tính xác nhận đi kèm với HTML5.Khi đầu vào biểu mẫu hợp lệ,: giả CSSUDoclass hợp lệ được áp dụng cho phần tử.Nếu nó không hợp lệ, thì: CSS giả không hợp lệ được áp dụng cho phần tử.a built-in feature. There are various validation attributes that come with HTML5. When form input is valid, the :valid CSS pseudoclass is applied to the element. If it's invalid, then the :invalid CSS pseudoclass is applied to the element.

Làm thế nào để bạn xác nhận một cú pháp địa chỉ email?

Một địa chỉ email hợp lệ có bốn phần: Tên người nhận.@ Biểu tượng.Tên miền...
Chữ hoa và chữ thường bằng tiếng Anh (A-Z, A-Z).
Chữ số từ 0 đến 9 ..
Một dấu gạch nối (-).
Một khoảng thời gian (.) (Được sử dụng để xác định một tên miền phụ; ví dụ: email. Mẫu tên miền).

HTML5 có thực hiện máy khách không

Xác thực phía máy khách xảy ra bằng cách sử dụng các thuộc tính HTML5 và JavaScript phía máy khách.Bạn có thể nhận thấy rằng trong một số biểu mẫu, ngay khi bạn nhập địa chỉ email không hợp lệ, biểu mẫu gây ra lỗi "Vui lòng nhập email hợp lệ".Loại xác nhận ngay lập tức này thường được thực hiện thông qua JavaScript phía máy khách.. You may have noticed that in some forms, as soon as you enter an invalid email address, the form gives an error "Please enter a valid email". This immediate type of validation is usually done via client side JavaScript.