Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Задача по теме строки и регулярные выражения (https://javascript.ru/forum/misc/78741-zadacha-po-teme-stroki-i-regulyarnye-vyrazheniya.html)

Таня12345 29.10.2019 11:57

Задача по теме строки и регулярные выражения
 
Здравствуйте. Помогите решить задачку по теме строки и регулярные выражения. Посчитать, сколько слов в тексте начинается с большой буквы или содержит дефис. Вывести их на экран в алфавитном порядке. Текст: Сайт рыбатекст поможет дизайнеру, верстальщику, вебмастеру сгенерировать несколько абзацев более менее осмысленного текста рыбы на русском языке, а начинающему оратору отточить навык публичных выступлений в домашних условиях.

ksa 29.10.2019 12:21

Цитата:

Сообщение от Таня12345
Текст:
Цитата:

Сайт рыбатекст поможет дизайнеру, верстальщику, вебмастеру сгенерировать несколько абзацев более менее осмысленного текста рыбы на русском языке, а начинающему оратору отточить навык публичных выступлений в домашних условиях.

Цитата:

Сообщение от Таня12345
Посчитать, сколько слов в тексте начинается с большой буквы или содержит дефис.

Так в твоем примере нет дефисов... :no:
И всего одно слово с большой буквы... :(

ksa 29.10.2019 12:30

Цитата:

Сообщение от Таня12345
Посчитать, сколько слов в тексте начинается с большой буквы
...
Вывести их на экран в алфавитном порядке.

Как вариант...

<textarea id='test'>Здравствуйте. Помогите решить задачку по теме
строки и регулярные выражения. Посчитать, сколько слов
в тексте начинается с большой буквы или содержит дефис.
Вывести их на экран в алфавитном порядке. Текст: Сайт
рыбатекст поможет дизайнеру, верстальщику, вебмастеру
сгенерировать несколько абзацев более менее осмысленного
текста рыбы на русском языке, а начинающему оратору
отточить навык публичных выступлений в домашних условиях.
</textarea>
<script type='text/javascript'>
var txt=document.querySelector("#test").value;
var arr=txt.match(/(?:^|\s)([А-Я][^\s,\.:]*)/g);
arr.sort();
alert(arr);
</script>

рони 29.10.2019 14:17

ksa,
на всякий случай, полная версия сортировки.
<textarea id='test'>Здравствуйте. Помогите решить задачку по теме
строки и регулярные выражения. Посчитать, сколько слов
в тексте начинается с большой буквы или содержит дефис.
Вывести их на экран в алфавитном порядке. Текст: Сайт
рыбатекст поможет дизайнеру, верстальщику, вебмастеру
сгенерировать несколько абзацев более менее осмысленного
текста рыбы на русском языке, а начинающему оратору
отточить навык публичных выступлений в домашних условиях.
</textarea>
<script type='text/javascript'>
var txt=document.querySelector("#test").value;
var collator = new Intl.Collator("ru");
var arr=txt.match(/(?:^|\s)([А-ЯЁ][^\s,\.:]*)/g)||[];
arr = arr.map(a => a.trim());
arr.sort((a, b) => collator.compare(a, b));
alert(arr);
</script>


Часовой пояс GMT +3, время: 02:15.