Судя по вашему описанию и коду, проблемами с использованием метода `match` могут быть следующие:
1. **Регулярное выражение**: Ваша строка, которую вы используете для поиска, должна быть корректно записана в формате регулярного выражения. В коде вы используете строку в одинарных кавычках, а регулярное выражение объявлено с помощью косых черт (`/`). Таким образом, JavaScript не понимает, что это регулярное выражение. Вместо этого нужно использовать конструкцию без кавычек. Также обратите внимание на то, что вы используете `(?<=...)` – это "positive lookbehind". Поддержка этого синтаксиса в различных браузерах может отличаться.
2. **Использование escape-последовательностей**: В вашей строке есть HTML-сущности. Они могут не соответствовать регулярному выражению. Убедитесь, что вы используете правильные символы в регулярном выражении.
3. **Пробелы и невидимые символы**: Возможно, в строке `data`, которую вы получаете из файла, есть дополнительные пробелы или невидимые символы, которые не учитываются в вашем регулярном выражении.
Попробуйте улучшить код следующим образом:
```javascript
document.querySelector('[type="file"]').addEventListener('change', (e) => {
const files = e.target.files;
const countFiles = files.length;
if (!countFiles) {
alert('Не выбран файл!');
return;
}
const selectedFile = files[0];
const reader = new FileReader();
reader.readAsText(selectedFile);
reader.addEventListener('error', () => {
console.error(`Произошла ошибка при чтении файла: ${selectedFile.name}`);
});
reader.onload = function(event) {
const data = event.target.result;
console.log(data);
// Регулярное выражение для поиска CALL, должно начинаться и заканчиваться с "/"
let arr_call_rx = data.match(/(?<=<CALL:\d+>).*?(?=<)/g);
// Проверяем, нашли ли что-то
if (arr_call_rx) {
console.log(arr_call_rx);
} else {
console.log("Совпадений не найдено.");
}
};
});
```
### Что было изменено:
- Я убрал кавычки, окружающие регулярное выражение, чтобы JavaScript мог корректно интерпретировать его.
- Убедитесь, что ваше регулярное выражение обновлено в соответствии с данными, которые вы ищете, и корректно ссылались на нужные элементы.
### Дополнительно:
- Если после этих изменений `arr_call_rx` по-прежнему возвращает `null`, вы можете добавить отладочные сообщения, чтобы проверить, что именно содержится в переменной `data`, и убедиться, что текст в файле соответствует шаблону, который вы задаете в регулярном выражении.