სიმბოლოთა ჯგუფები JavaScript-ის რეგულარულ გამოსახულებებში

არსებობს სპეციალური ბრძანებები, რომლებიც საშუალებას გვაძლევს ავირჩიოთ სიმბოლოთა მთელი ჯგუფები ერთდროულად. ბრძანება \d ნიშნავს ციფრს 0-დან 9-მდე. ბრძანება \w აღნიშნავს ციფრს, ლათინურ ასოს ან ქვედა ტირეს. ბრძანება \s აღნიშნავს სივრცეს ან სივრცულ სიმბოლოს: სივრცე, ხაზის გადატანა, ტაბულაცია. შესაძლებელია ბრძანების მნიშვნელობის ინვერსია, დიდი ასოს დაწერით: მაგალითად, თუ \d - ციფრია, მაშინ \D - არა-ციფრია.

მაგალითი

მოდი ვიპოვოთ ყველა ციფრი:

javascriptlet str = '1 12 123';
let res = str.replace(/\d/g, '!');

შედეგად ცვლადში ჩაიწერება შემდეგი:

javascript'! !! !!!'

მაგალითი

გამეორების ოპერატორები სიმბოლოთა ჯგუფების ბრძანებებს ერთ მთლიანობად თვლიან, ანუ დამაჯგუფებელი ფრჩხილები არ არის საჭირო. შემდეგ მაგალითში ძიების შაბლონი ასე გამოიყურება: ციფრი 0-დან 9-მდე ერთი ან მეტი ჯერ:

javascriptlet str = '1 12 123 abc @@@';
let res = str.replace(/\d+/g, '!');

შედეგად ცვლადში ჩაიწერება შემდეგი:

javascript'! ! ! abc @@@'

მაგალითი

შემდეგ მაგალითში ძიების შაბლონი ასე გამოიყურება: ნებისმიერი სიმბოლო ერთი ან მეტი ჯერ, მაგრამ არა ციფრი 0-დან 9-მდე:

javascriptlet str = '123abc3@@';
let res = str.replace(/\D+/g, '!');

შედეგად ცვლადში ჩაიწერება შემდეგი:

javascript'123!3!'

მაგალითი

ამ მაგალითში ძიების შაბლონი ასე გამოიყურება: სივრცული სიმბოლო ერთხელ:

javascriptlet str = '1 12 123 abc @@@';
let res = str.replace(/\s/g, '!');

შედეგად ცვლადში ჩაიწერება შემდეგი:

javascript'1!12!123!abc!@@@'

მაგალითი

ამ მაგალითში ძიების შაბლონი ასე გამოიყურება: არა-სივრცული სიმბოლო ერთი ან მეტი ჯერ. ყველა ქვესტრიქონი, რომელიც სივრცეებითაა გამოყოფილი, შეიცვლება '!'-ით:

javascriptlet str = '1 12 123 abc @@@';
let res = str.replace(/\S+/g, '!');

შედეგად ცვლადში ჩაიწერება შემდეგი:

javascript'! ! ! ! !'

მაგალითი

ამ მაგალითში ძიების შაბლონი ასე გამოიყურება: ციფრი ან ასო ერთი ან მეტი ჯერ. ყველა ქვესტრიქონი, რომელიც ციფრებისა და ასოებისგან შედგება, შეიცვლება '!'-ით:

javascriptlet str = '1 12 123a Abc @@@';
let res = str.replace(/\w+/g, '!');

შედეგად ცვლადში ჩაიწერება შემდეგი:

javascript'! ! ! ! @@@'

მაგალითი

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

javascriptlet str = '1 12 123 Abc @@@';
let res = str.replace(/\W+/g, '!');

შედეგად ცვლადში ჩაიწერება შემდეგი:

javascript'1!12!123!Abc!'

პრაქტიკული ამოცანები

Задание 1

მოცემულია სტრიქონი:

javascriptlet str = 'a1a a2a a3a a4a a5a aba aca';

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

Задание 2

მოცემულია სტრიქონი:

javascriptlet str = 'a1a a22a a333a a4444a a55555a aba aca';

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

Задание 3

მოცემულია სტრიქონი:

javascriptlet str = 'aa a1a a22a a333a a4444a a55555a aba aca';

დაწერეთ რეგულარული გამოსახულება, რომელიც იპოვის სტრიქონებს, რომლებშიც კიდეებზე დგას 'a' ასოები, მათ შორის კი ნებისმიერი რაოდენობის ციფრი (მათ შორის ნულოვანი ციფრიც, ანუ სტრიქონი 'aa').

Задание 4

მოცემულია სტრიქონი:

javascriptlet str = 'avb a1b a2b a3b a4b a5b abb acb';

დაწერეთ რეგულარული გამოსახულება, რომელიც იპოვის შემდეგი ფორმის სტრიქონებს: კიდეებზე დგას 'a' და 'b' ასოები, მათ შორის კი - არა რიცხვი და არა სივრცე.

Задание 5

მოცემულია სტრიქონი:

javascriptlet str = 'ave a#b a2b a$b a4b a5b a-b acb';

დაწერეთ რეგულარული გამოსახულება, რომელიც იპოვის შემდეგი ფორმის სტრიქონებს: კიდეებზე დგას 'a' და 'b' ასოები, მათ შორის კი - არა ასო, არა ციფრი და არა სივრცე.

Задание 6

მოცემულია სტრიქონი:

javascriptlet str = 'ave a#a a2a a$a a4a a5a a-a aca';

დაწერეთ რეგულარული გამოსახულება, რომელიც შეცვლის ყველა სივრცეს '!'-ზე.