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:
let str = '!123';
if (/^!/.test(str)) {
console.log('+++');
} else {
console.log('---');
}
Kuitenkin tällaisella tehtävällä on paljon nopeammin toimiva ratkaisu:
let str = '!123';
if (str[0] == '!') {
console.log('+++');
} else {
console.log('---');
}
Seuraava koodi tarkistaa, onko merkkijonossa
osajonoa '33'.
Suorita optimointi:
let str = '123345';
if (/33/.test(str)) {
console.log('+++');
} else {
console.log('---');
}
Seuraava koodi tarkistaa, päättyykö
merkkijono osaan '.html'.
Suorita optimointi:
let str = 'index.html';
if (/\.html$/.test(str)) {
console.log('+++');
} else {
console.log('---');
}
Seuraava koodi leikkaa lopusta tyhjät merkit. Suorita optimointi:
let str = ' text ';
let res = str.replace(/^\s+|\s+$/g, '');
console.log(res);