JavaScriptда регуляр ифодаларини ишлашни оптимизациялаш

Регуляр ифодалари жуда оғир ва носибий секин ишлайдиган нарса. Қачонки муқобил ечим мавжуд бўлса, аynan шуни ишлатиш истагиланади.

Келиб, мисол кўриб чиқайлик. Фарз қилайлик, бизга бирор сатр унглатиш белгисидан бошланишини текшириш керак. Бир программачи бу вазифани регуляр орқали ечди:

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);