Заменить текст regEx с помощью | и () проблема захвата

Я использую литералы javaScript RegEx для замены частей строки, я хочу использовать | для проверки возможных типов шаблонов и () для захвата части совпадения, которое я хочу заменить. но похоже, что это не работает, почему это?

вот мой текущий regEx:

testText.replace(/(\w)\s+\w$|(\w)\s+$|\w+(\w)$/g, "$1...")

Я предполагаю, что с этим что-то не так: вот хочу, чего я хочу добиться:

учитывая "x x", я ожидаю:

  "x..."

учитывая "x", я ожидаю:

   "x...

учитывая "werfdsdfasd" (слово без пробела), я ожидаю:

   "werfdsdfasd..."

Вы должны зафиксировать то, что вам нужно сохранить. См. regex101.com/r/NdLkcQ/1. Попробуйте .replace(/(\w)\s+\w$|(\w)\s+$|(\w+)\w$/g, '$1$2$3...'). Или regex101.com/r/NdLkcQ/2, replace(/(\w)\s+\w?$|(\w+)\w$/g, '$1$2...')

Wiktor Stribiżew 30.10.2018 23:37
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
1
39
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Проблема в том, что у вас есть 3 группы захвата, и вы всегда ссылаетесь на первую.

Попробуйте это: (\w+)(?:\s+\w$|\s+$|$)

Демо

Итак, вы хотите захватить все, что стоит перед пробелом или концом строки.

(\w+)(\s+.*$|$)

Другие вопросы по теме