สร้างนิพจน์ปกติที่สั้นที่สุดซึ่งจะจับคู่กับ URL ในข้อความเมื่อเรียกใช้ใน JavaScript
ตัวอย่าง:
"some text exampley.com".match(/your regular expression goes here/);
การแสดงออกปกติต้อง
- รวบรวม URL ที่ถูกต้องทั้งหมดที่ใช้สำหรับ http และ https
- ไม่ต้องกังวลกับการไม่จับคู่สำหรับสตริงการค้นหา URL ที่ไม่ถูกต้องเช่น URL
super.awesome/cool
- จะถูกต้องเมื่อเรียกใช้เป็น JavaScript regex
เกณฑ์การทดสอบ:
การจับคู่:
- http://example.com
- http://example.com/
- http://example.com/super
- https://example.com/super
- example.com/super
- example.com
- example.com/su-per_duper/?add=yes&subtract=no
- example.com/archive/index.html
- twitter.com/#!/reply
- example.com/234ret2398oent/234nth
- codegolf.stackexchange.com/questions/464
- crazy.wow.really.example.com/?cat=nth%3E
- example-example.com
- example1.com
ไม่ตรงกับ:
- ตัวอย่าง
- ซุปเปอร์ / เย็น
- อรุณสวัสดิ์
- ฉันสามารถ
- สวัสดี.
นี่คือการทดสอบที่อาจช่วยชี้แจงเล็กน้อยhttp://jsfiddle.net/MikeGrace/gsJyr/
ฉันขอโทษสำหรับการขาดความชัดเจนฉันไม่ได้ตระหนักถึงวิธีการที่ตรงกับ URL ที่น่ากลัว
\w
กับทุกสิ่งคุณคาดหวังว่าจะมีการอ้างอิงย้อนกลับสำหรับส่วนประกอบ URL ที่แตกต่างกันหรือไม่?
/:/
เป็นนิพจน์ปกติและจับคู่ URI ที่ถูกต้องได้และไม่ตรงกับตัวอย่างทั้งหมดของคุณในรายการ»ไม่ตรงกัน« ตราบใดที่คุณกำลังไปเส้นทางนั้นมันเป็นคำถาม: อะไรคือนิพจน์ปกติที่สั้นที่สุดที่จะไม่ตรงกับตัวอย่างใด ๆ ของสตริง แต่ยังคงจับ URIs ทั้งหมด