Базовое равенство строк JavaScript не удалось в Gulp
У меня есть это задание глотка
gulp.src([`../../**/*.js`].concat(dontCheck.map(p => '!../../' + p)))
.pipe(gulpPrint(path => {
let adjusted = path.replace('..\\..\\', '').replace(/\\/g, '/');
let target = 'account/account.js';
if (adjusted == target){
console.log('FOUND');
} else {
console.log('NOT FOUND', '|' + target + '|', '|' + adjusted + '|', String(target) == String(adjusted), typeof target, typeof adjusted);
}
И я получаю этот сводящий с ума вывод
Почему эти строки не совпадают? Есть ли adjusted
есть другая кодировка Unicode? Если так, как мне примирить это?
1 ответ
Решение
Если вы не сделали что-то, чтобы выделить для нас вывод console.log, похоже, что adjusted
завернут в последовательность управления цветом, например \e[31m
,
Этот ответ может помочь, который предоставляет это регулярное выражение для замены управляющих последовательностей:
/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g