რეგულარული გამონათქვამების ოპტიმიზაცია JavaScript-ში

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

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

javascriptlet str = '!123';

if (/^!/.test(str)) {
  console.log('+++');
} else {
  console.log('---');
}

თუმცა, ასეთი ამოცანა გაცილებით სწრაფად მოქმედი გადაწყვეტა აქვს:

javascriptlet str = '!123';

if (str[0] == '!') {
  console.log('+++');
} else {
  console.log('---');
}
Задание 1

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

javascriptlet str = '123345';

if (/33/.test(str)) {
  console.log('+++');
} else {
  console.log('---');
}
Задание 2

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

javascriptlet str = 'index.html';

if (/\.html$/.test(str)) {
  console.log('+++');
} else {
  console.log('---');
}
Задание 3

შემდეგი კოდი წყვეტს ბოლო სფეისებს. შეასრულეთ ოპტიმიზაცია:

javascriptlet str = '  text  ';
let res = str.replace(/^\s+|\s+$/g, '');
console.log(res);