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