ხაზში მოთავსებული საიტების (დომენის სახელების) ძიება – JS

var testStr = “გუშინ მე გავხსენი 5 საიტი: http://www.starlet.ge, https://geo-test-site.ge, http://www.myvideo.az, http://my-drive.ge და Box.GE მაგრამ, მე უფრო მომწონს დომენი რომელიც მოქცეულია .ge ზონაში”;

გვაქვს ცვლადი testStr და მასში მოთავსებული ინფორმაცია, სადაც დაწერილია 5 ტიპის საიტი სხვადასხვა სახით.

ჩვენ უნდა დავწეროთ პირობა, რომელიც იპოვის ამ ხაზზე განთავსებულ ყველა .ge საიტს, მიუხედავად პროტოკოლისა:

ხაზში მოთავსებული საიტების ძიება - JS

შედეგი:

ხაზში მოთავსებული საიტების ძიება - JS

http://jsfiddle.net/wholehat/d6mq3/

დავუმატოთ, გლობალური ძიების შაბლონი, რადგან ვიპოვოთ ყველა .ge ჩანაწერი:

ხაზში მოთავსებული საიტების ძიება - JS

შედეგი:

ხაზში მოთავსებული საიტების ძიება - JS

http://jsfiddle.net/wholehat/Qq2c2/

.ge ჩანაწერი ხაზზე ვიპოვოთ როგორც დიდი პატარა დაწერილი ასევე დიდით, ამისათვის გავხსნათ მოკლე ჩანაწერი რეგულარული გამოსახულებების შესახებ და ვიპოვოთ შემდეგი:

ხაზში მოთავსებული საიტების ძიება - JS

შაბლონი i -ს დახმარებით, ჩვენთვის საჭირო ინფორმაციას, წინადადებაში მოვიძიებთ როგორც დიდი ასოებით დაწერილს ასევე პატარებით:

ხაზში მოთავსებული საიტების ძიება - JS

შედეგი:

ხაზში მოთავსებული საიტების ძიება - JS

http://jsfiddle.net/wholehat/GdStt/

გადმოგვყავს მაუსის კურსორი, წერტილის წინ ანუ .ge და ვფიქრობთ რა შეიძლება ეწეროს წერტილამდე დომენის სახელში, ჩვენთვის ცნობილია რომ, დომენის სახელი შეიძლება რომ შედგებოდეს მინიმუმ ორი სიმბოლოსაგან, ასევე მხოლოდ ლათინური ასოებისგან, ტირესგან ( – ) და ციფრებისაგან. გამომდინარე აქედან ჩვენთვის ცხადია რომ .ge -ს წინ ჩვენ შეიძლება შეგვხვდეს:

ან ლათინური ასოები

ან ციფრები

ან ლათინური ასოები და ციფრები

ან ციფრები და ტირე ან ტირეები

ან ლათინური სიმბოლო და ტირე ან ტირეები

ან ლათინური სიმბოლო, ციფრი ან ციფრები და ტირე ან ტირეები

როგორ გამოვრიცხოთ ზემოთ ჩამოთვლილი რამოდენიმე პირობა ერთდროულად და მარტივად,

გავხსნათ მოკლე ჩანაწერი რეგულარული გამოსახულებების შესახებ და ვიპოვოთ ბლოკი სახელით: Ranges

ხაზში მოთავსებული საიტების ძიება - JS

რომელიც ნიშნავს: a ან ბ ან c

იმ შემთხვევაში თუ გვინდა რომ დავწეროთ პირობა:

ყველა სიმბოლო a დან z მდე

ყველა ციფრი 0 დან 9 მდე

ასევე ტირე ან ტირეებიც

რომელიც დაიწერება შემდეგნაირად [a-z0-9-]

ხაზში მოთავსებული საიტების ძიება - JS

შედეგი:

ხაზში მოთავსებული საიტების ძიება - JS

http://jsfiddle.net/wholehat/2tRk8/

როგორც ხედავთ, ჩვენს მიერ დაწერილმა პირობამ იმუშავა, მაგრამ შედეგების წინ გაჩნდა ლათინური ასოები, ეს იმიტომ მოხდა რომ ჩვენ არ მივუთითეთ თუ რამდენჯერ მინიმუმ და მაქსიმუმ განმეორდება ჩვენს მიერ პირობაში მოთავსებული: ლათინური ასოები, ციფრები და ტირეები.

ამისათვის დავუბრუნდეთ რეგულარული გამოსახულების შესახებ მოკლე ჩანაწერს და ვიპოვოთ შემდეგი:

ხაზში მოთავსებული საიტების ძიება - JS

გამომდინარე იქედან რომ, დომენში არ შეიძლება შეგვხვდეს 2 ზე ნაკლები სიმბოლო, გამოგვადგება წითელ ხაზში მოთავსებული შაბლონი რეგულარული გამოსახულებების შესახებ:

ხაზში მოთავსებული საიტების ძიება - JS

 

შედეგი:

ხაზში მოთავსებული საიტების ძიება - JS

 

http://jsfiddle.net/wholehat/gJ6wQ/

როგორც ვხედავთ ჩვენს მიერ დაწერილი პირობის მიხედვით, ძიება ხდება არა პროტოკოლისა არამედ დომენის სახელისა და დაბოლოებისა ანუ არა:

http://www.starlet.ge ან https://starlet.ge ან http://starlet.ge არამედ მხოლოდ: starlet.ge

პირველ ეტაპზე ვიპოვოთ დომენის სახელები მხოლოს www. -ის ერთად:

ხაზში მოთავსებული საიტების ძიება - JS

 

შედეგი:

ხაზში მოთავსებული საიტების ძიება - JS

 

http://jsfiddle.net/wholehat/kp9Q7/

დავამატეთ:

(www\.)?

შაბლონის ფრჩხილებში მოთავსება ნიშნავს, მის ქვეშაბლონად ქცევას

მოვახდინეთ წერტილის ეკრაირება, იმიტომ რომ წერტილი გამოიყენება ასევე რეგულარულ გამოსახულებაშიც,

და ბოლოს დავწერეთ კითხვითი ნიშანი ანუ ? , რაც მოკლე ჩანაწერის მიხედვით რეგულარული გამოსახულებების შესახებ, ნიშნავს:

ხაზში მოთავსებული საიტების ძიება - JS

 

ნულს ან ერთს, იმირომ რომ, www. დომენის სახელში შეიძლება საერთოდ არ შეგვხვდეს ან შეგვხვდეს მხოლოდ ერთჯერ.

დაგვრჩა http:// და https://

ალბათ თქვენ უკვე გამოიცანით რომ, ესენის მსგავსი შემთხვევებია .www სი:

var regExp = /(https:\/\/)?(http:\/\/)?(www\.)?[a-z0-9-]{2,1000}\.ge/gi;

ხაზში მოთავსებული საიტების ძიება - JS

 

შედეგი:

ხაზში მოთავსებული საიტების ძიება - JS

 

http://jsfiddle.net/wholehat/9WV4c/

შევცვალოთ ჩვენი წინადადება:

var testStr = “გუშინ მე გავხსენი 5 საიტი: http://www.starlet.ge, https://geo-test-site.ge, http://www.myvideo.az, http://my-drive.ge და Box.GE მაგრამ, მე უფრო მომწონს დომენი რომელიც მოქცეულია .ge ზონაში”;

http://my-drive.ge – დავუმატოთ წინ www ანუ:

http://www.my-drive.ge , ჩვენს მიერ დაწერილი პირობა კი უცვლელი დავტოვოთ:

ხაზში მოთავსებული საიტების ძიება - JS

 

შედეგი:

ხაზში მოთავსებული საიტების ძიება - JS

 

http://jsfiddle.net/wholehat/tw3UU/

როგორც ვხედავთ, იპოვა http://www.my-drive.ge

კიდევ შევცვალოთ, ჩვენი წინადადება და შევქმნათ ქვედომენი, მაგ:

http://www.subdomain.my-drive.ge

მის საპოვნელად, პირობის შეცვლაც დაგვჭირდება, უნდა დავუმატოთ წერტილი, ტირეს შემდეგ:

var regExp = /(https:\/\/)?(http:\/\/)?(www\.)?[a-z0-9-.]{2,1000}\.ge/gi;

ხაზში მოთავსებული საიტების ძიება - JS

 

შედეგი:

ხაზში მოთავსებული საიტების ძიება - JS

 

http://jsfiddle.net/wholehat/4q7Qm/

Advertisements

კომენტარის დატოვება

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / შეცვლა )

Twitter picture

You are commenting using your Twitter account. Log Out / შეცვლა )

Facebook photo

You are commenting using your Facebook account. Log Out / შეცვლა )

Google+ photo

You are commenting using your Google+ account. Log Out / შეცვლა )

Connecting to %s