У меня в тексте есть такая закономерность:
PSA-изображение отчета о
-15.12.1402 (05.03.2024): 0,15 нг/мл
-19.04.1403 (09.07.2024): 0,36нг/мл.
И у меня есть приведенный выше текст в виде одной строки:
let string = `PSA-report on -15.12.1402 (05.03.2024): 0.15 ng/ml -19.04.1403 (09.07.2024): 0.36ng/ml.`
Я хочу преобразовать string
из однострочного формата в формат, который вы видите в шаблоне. Я хочу вставить новую строку перед каждым дефисом, сразу за которым стоит число.
Я попробовал этот код...
string = string.replaceAll('-', '\n-');
... но перед каждым дефисом добавляется новая строка. Как мне сопоставить только те, за которыми непосредственно следует число?
let string = `PSA-report on -15.12.1402 (05.03.2024): 0.15 ng/ml -19.04.1403 (09.07.2024): 0.36ng/ml.`
string = string.replaceAll('-', '\n-');
console.info(string);
🤔 А знаете ли вы, что...
С помощью JavaScript можно валидировать данные на стороне клиента, что улучшает пользовательский опыт.
Вы могли бы попробовать
string.replace(/(?=-\d)/g, '\n')
let string = `PSA-report on -15.12.1402 (05.03.2024): 0.15 ng/ml -19.04.1403 (09.07.2024): 0.36ng/ml.`
const formatted = string.replace(/(?=-\d)/g, '\n');
console.info(formatted);
Используйте положительный просмотр вперед, чтобы обнаружить наличие цифры после дефиса.
let string = `PSA-report on -15.12.1402 (05.03.2024): 0.15 ng/ml -19.04.1403 (09.07.2024): 0.36ng/ml.`
string = string.replaceAll(/-(?=\d)/g, '\n-');
console.info(string);
Дополнительную информацию можно найти по адресу regex101.