Säännöllisten lausekkeiden optimointi JavaScriptissä

Säännölliset lausekkeet ovat erittäin raskas ja suhteellisen hitaasti toimiva asia. Kun on olemassa vaihtoehtoinen ratkaisu, on toivottavaa käyttää juuri sitä.

Katsotaanpa esimerkkiä. Oletetaan, että meidän on tarkistettava, alkaako jokin merkkijono huutomerkillä. Eräs ohjelmoija ratkaisi tämän tehtävän säännöllisellä lausekkeella:

javascriptlet str = '!123';

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

Kuitenkin tällaisella tehtävällä on paljon nopeammin toimiva ratkaisu:

javascriptlet str = '!123';

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

Seuraava koodi tarkistaa, onko merkkijonossa osajonoa '33'. Suorita optimointi:

javascriptlet str = '123345';

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

Seuraava koodi tarkistaa, päättyykö merkkijono osaan '.html'. Suorita optimointi:

javascriptlet str = 'index.html';

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

Seuraava koodi leikkaa lopusta tyhjät merkit. Suorita optimointi:

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