ประเภทอินพุต =“ อีเมล” อนุญาตให้ทดสอบ @ test ทำไม


10

ฉันอยู่ภายใต้การสันนิษฐานเสมอว่าเบราว์เซอร์ - การตรวจสอบอีเมล - regex มีประสิทธิภาพมากกว่ารูปแบบ regex บางอย่างใน JS / PHP

นายจ้างของฉันเพิ่งแสดงให้ฉันเห็นว่าทั้งสองสายถือว่าถูกต้อง (ในที่สุดใน FF28):

test@test.com // Expected to be true, is true
test@test     // Expected to be false, is true

เหตุใดจึงเป็นเรื่องจริงหลัง นี่เป็นข้อบกพร่องหรือบางอย่างสำหรับอนาคตหรือไม่ เพราะเท่าที่ฉันสามารถบอกได้มันไม่ถูกต้องที่จะไม่ใช้ส่วนขยาย (นอกเหนือจากอาจเป็น localhosts)

ใครที่สามารถทำให้กระจ่างในเรื่องนี้?


2
"นอกเหนือจาก localhosts" - และเบราว์เซอร์แตกต่างอย่างไร
MrWhite

1
ยิ่งกว่านั้นฉันคิดว่า<input type="email" />มันมีประโยชน์สำหรับเว็บไซต์บนมือถือเท่านั้นดังนั้นแป้นพิมพ์ส่วนใหญ่จะแสดงขึ้นมาพร้อมกับหน้าจอที่เหมาะสม (ด้วย@ปุ่มและ.comปุ่มลัดบางปุ่ม ... )
RichouHunter

ฉันไม่รู้ฉันไม่ได้สร้างเบราว์เซอร์ :) อาจเป็นเคล็ดลับที่ฉลาดหรืออาจเป็นการตั้งค่าบางอย่างที่คุณสามารถเพิ่มได้pattern
Martijn

6
นั่นเป็นที่อยู่ที่ถูกต้องสมบูรณ์ทำไมถึงถูกปฏิเสธ?
Jörg W Mittag

1
เพราะtest@testเป็นที่อยู่อีเมลที่ถูกต้อง ... มันถือว่าเป็นtest tldเช่นเดียวtest@comกับที่อยู่อีเมลที่ถูกต้องสำหรับcomtld ... tools.ietf.org/html/rfc2822#section-3.4.1
SnakeDoc

คำตอบ:


20

ถูกต้องเพราะtestอาจเป็นโดเมนระดับบนสุดและlocalpart@top-level-domainเป็นที่อยู่อีเมลที่ถูกต้อง

ดูตัวอย่างที่อยู่อีเมลส่วนโดเมน


และเนื่องจาก ICANN มีกระบวนการสำหรับทุกคน (ใหญ่พอ) ในการสมัคร TLD ที่พวกเขาเลือกจึงเป็นไปไม่ได้อีกต่อไปที่ผู้ตรวจสอบอีเมลจะปฏิเสธtestว่าเป็น TLD เพียงเพราะมันยังไม่ได้ลงทะเบียน
Steve Jessop

1
@SteveJessop นอกจากนี้ OP ไม่ได้ระบุว่าเขากำลังพูดถึงความถูกต้องทางไวยากรณ์ (อีเมลจะถูกต้องแม้ว่าจะไม่ได้ลงทะเบียน) หรือถ้าเขากำลังพูดถึงการตรวจสอบว่าอีเมลทำงาน (และในกรณีนี้จะต้องมากขึ้น) .. .
Matteo

ไม่ตรวจสอบว่ามีอยู่หรือไม่ฉันประหลาดใจที่ไม่จำเป็นต้องมีการขยายโดเมน สิ่งนี้จะทำให้การตรวจสอบเบราว์เซอร์มีประโยชน์น้อยลงเนื่องจากมีคนเพียงพิมพ์ asd @ ads และมันจะผ่าน
Martijn

5
@Martijn: "การตรวจสอบความถูกต้องของเบราว์เซอร์" เป็นเพียงการตรวจสอบความถูกต้องของบรรทัดแรก (ที่ข้ามได้ง่าย) ดังนั้นจึงจำเป็นต้องเป็นการตรวจสอบที่กว้างที่สุดเท่าที่จะเป็นไปได้ การตรวจสอบที่เข้มงวด "ขั้นสุดท้ายยังคงต้องอยู่ในตรรกะฝั่งเซิร์ฟเวอร์ของคุณ
MrWhite

3

คุณสามารถแก้ไขไฟล์โฮสต์หรือเรียกใช้เซิร์ฟเวอร์ DNS ในเครือข่ายท้องถิ่นเพื่อสร้างเครื่องที่มีชื่อโดเมนระดับบนสุด ที่อยู่อีเมลจะสามารถเข้าถึงได้ก็ต่อเมื่อมันถูกกำหนดเส้นทางภายในเครือข่ายท้องถิ่นนั้นเท่านั้น แต่เป็นค่าที่เป็นไปได้


2

โปรดทราบว่าเว็บเบราว์เซอร์ไม่จำเป็นต้องทำการตรวจสอบความถูกต้องใด ๆ เบราว์เซอร์รุ่นเก่าไม่ทำอะไรเป็นพิเศษด้วยที่อยู่อีเมล เบราว์เซอร์ที่ใหม่กว่าอาจตรวจสอบได้ แต่ประเภท 'อีเมล' มีประโยชน์มากที่สุดในอุปกรณ์มือถือซึ่งอาจแสดงแป้นพิมพ์พิเศษให้กับผู้ใช้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.