JavaScriptда регуляр ифодаларини ишлашни оптимизациялаш
Регуляр ифодалари жуда оғир ва носибий секин ишлайдиган нарса. Қачонки муқобил ечим мавжуд бўлса, аynan шуни ишлатиш истагиланади.
Келиб, мисол кўриб чиқайлик. Фарз қилайлик, бизга бирор сатр унглатиш белгисидан бошланишини текшириш керак. Бир программачи бу вазифани регуляр орқали ечди:
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);