เมื่อได้รับที่อยู่อีเมลผลลัพธ์ของการแปลงที่ใช้กับที่อยู่อีเมลนั้นและที่อยู่อีเมลที่สองจะส่งคืนผลลัพธ์ของการแปลงแบบเดียวกันที่ใช้กับที่อยู่อีเมลที่สอง
ที่อยู่อีเมลทั้งหมดจะมีโครงสร้างดังต่อไปนี้:
สตริงที่มีความยาวเป็นบวกที่มีอักขระตัวอักษรผสมตัวเลขและอย่างน้อยหนึ่งตัว.
(ส่วนท้องถิ่น) ตามด้วย@
สัญลักษณ์ตามด้วยสตริงที่มีความยาวเป็นบวกที่มีตัวอักษรและตัวเลข sumbols (โดเมน) ตามด้วย.
สัญลักษณ์และสตริงสุดท้ายของความยาวเป็นบวก มีอักขระที่เป็นตัวอักษรและตัวเลข (TLD)
การแปลงที่อนุญาตมีสี่แบบ:
- ตัวตน (ไม่มีการเปลี่ยนแปลง) (
a.b@c.d -> a.b@c.d
) - ส่งคืนเฉพาะส่วนท้องที่ (ทุกอย่างก่อน
@
) ไม่ได้แก้ไข (a.b@c.d -> a.b
) - การคืนค่าส่วนท้องถิ่นจะแบ่งออก
.
หากมีพร้อมกับสัญลักษณ์แรกของแต่ละครึ่ง (a.b@c.d -> A B
) - ส่งคืนเฉพาะโดเมน (ทุกสิ่งระหว่าง
@
และถึงขั้นสุดท้าย.
) ที่ไม่ได้แก้ไข (a.b@c.d -> c
)
เมื่อมีการแปลงมากกว่าหนึ่งครั้งคุณสามารถให้ผลลัพธ์ที่เป็นไปได้ ช่องว่างที่จุดเริ่มต้นและจุดสิ้นสุดของการส่งออกไม่สำคัญ แต่ในตรงกลางไม่ (เช่นถ้าคุณแยกa.b
ไปA B
ควรจะมีเพียงหนึ่งช่องว่างตรงกลาง [และหมายเลขใด ๆ ที่จุดเริ่มต้นและจุดสิ้นสุดของการส่งออก] แต่ถ้าคุณแยกa.
จากนั้นA
ด้วยช่องว่างจำนวนเท่าใดก็ได้ที่ยอมรับได้)
ตัวอย่าง ( input | output
):
john.doe@gmail.com, John Doe, phillip.maini@gmail.com | Phillip Maini
John.Doe@gmail.com, John Doe, Phillip.Maini@gmail.com | Phillip Maini
foo.bar@hotmail.com, foo.bar, gee.whizz@outlook.com | gee.whizz
foo.bar@hotmail.com, foo.bar, gEe.Whizz@outlook.com | gEe.Whizz
rodney.dangerfield@comedy.net, comedy, michael.scott@office.0 | office
.jones@x.1, Jones, a.@3.z | A
.jones@x.1, .jones@x.1, a.@3.z | a.@3.z
.jones@x.1, .jones, a.@3.z | a.
.jones@x.1, x, a.@3.z | 3
.@b.c, .@b.c, 1@2.3 | 1@2.3
john.jones@f.f, John Jones, 1in.thehand@2inthe.bush | 1in Thehand
chicken.soup@q.z, Chicken Soup, fab@ulou.s | Fab
lange@haare.0, lange, fat.so@fat.net | fat.so
Lange@haare.0, Lange, fat.so@fat.net | {fat.so, Fat So} # either acceptable
chicken@chicken.chicken, chicken, horse@pig.farm | {horse, pig} # either acceptable
ใช้กฎและช่องโหว่ตามปกติ
@
และสุดท้าย.
) เนื่องจากส่วนและโดเมนในตัวเครื่องมีทั้งคู่chicken
จึงคลุมเครือไม่ว่าจะเป็นการแปลงครั้งที่ 2 หรือครั้งที่ 4
A
[ด้วยช่องว่างต่อท้าย] ที่อินพุตที่สองเป็นJones
[ด้วยช่องว่างนำหน้า])?
.jones@x.1, Jones, a.@3.z
เป็นA
- ถ้าjones
เป็นคู่ที่หมายถึงส่วนที่ตรงกันเป็นส่วนหนึ่งระหว่างช่วงแรกและ @ สัญลักษณ์ แต่นั่นจะส่งผลให้สตริงว่างเพราะa
เป็นก่อนช่วงเวลาแรกและไม่หลังจาก