Оптимизатсияи истифодаи регуляриҳо дар JavaScript
Ибораҳои оддӣ хеле вазнин ва нисбатан суст коркунанда аст. Вақте ки ҳалли алтернативӣ мавҷуд аст, ҳатмӣ аст, ки аз он истифода баред.
Биёед мисолро дида бароем. Фарз кунем, ки мо бояд тафтиш кунем, ки оё ядрои сатр бо аломати ситора (восклицательный) оғоз мешавад. Баъзе барномасоз ин вазифаро тавассути регулярӣ ҳал кард:
let str = '!123';
if (/^!/.test(str)) {
console.log('+++');
} else {
console.log('---');
}
Аммо, чунин вазифа ҳалли зудтар коркунанда дорад:
let str = '!123';
if (str[0] == '!') {
console.log('+++');
} else {
console.log('---');
}
Коди зерин мавҷуд будани зерсатрро дар сатр тафтиш мекунад
'33'.
Оптимизатсияро иҷро кунед:
let str = '123345';
if (/33/.test(str)) {
console.log('+++');
} else {
console.log('---');
}
Коди зерин тафтиш мекунад, ки оё сатр бо '.html' хотима меёбад.
Оптимизатсияро иҷро кунед:
let str = 'index.html';
if (/\.html$/.test(str)) {
console.log('+++');
} else {
console.log('---');
}
Коди зерин фосилаҳои хотимаро мебурад. Оптимизатсияро иҷро кунед:
let str = ' text ';
let res = str.replace(/^\s+|\s+$/g, '');
console.log(res);