არათავმოყრითი ფრჩხილები ჯავასკრიპტის რეგულარულ გამოსახულებებში

ფრჩხილებს ( ) აქვთ ორი ფუნქცია - სიმბოლოების დაჯგუფება და ჯიბის ფუნქცია. Და რა ვუყოთ, თუ გვსურს დავაჯგუფოთ, მაგრამ ჯიბეში არ ჩავდოთ? ამ პრობლემის მოსაგვარებლად შექმნილია სპეციალური არათავმოყრითი ფრჩხილები (?: ) - ისინი აჯგუფებენ, მაგრამ ჯიბეში არ აგროვებენ.

მაგალითი

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

javascriptlet str = 'abab123';
let res = str.match(/(ab)+([1-9]+)/);

შედეგად, ჩვენს ჯიბეებში იქნება შემდეგი:

javascriptconsole.log(res[0]); // გამოიტანს 'abab123'
console.log(res[1]); // გამოიტანს 'ab'
console.log(res[2]); // გამოიტანს '123'

მაგალითი

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

javascriptlet str = 'abab123';
let res = str.match(/(?:ab)+([1-9]+)/);

შედეგად, პირველ ჯიბეში იქნება ჩვენი რიცხვი:

javascriptconsole.log(res[1]); // გამოიტანს '123'