Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Другие темы раздела
JavaScript Dynamic Dropdown list jsp + ajax https://www.cyberforum.ru/ javascript/ thread1217964.html
Здравствуйте. Питаюсь добавить в форму регистрации динамический select-ер, для выбора города по указанной стране. Есть вот такая jsp <%@ page language="java" contentType="text/html;...
Вывести JavaScript
Как алертом вывести знак корня (&Sqrt; или &radic;) через метод класса? Есть клас дробей \frac{k*(n+\sqrt{f})}{d}, для него пиишу метод toString() Frac.prototype.toString = function() { ...
Таймер обратного отсчета в формате чч:мм:сс JavaScript
Мой таймер считает минуты и секунды. Подскажите, как добавить чтобы считало количество часов. И еще проблемка, как его остановить-то?))) Если не перенаправлять на другую страничку он считает в...
JavaScript курсы по JavaScript Здраствуйте. Хочу выючить JavaScript. Ищу того кто мог бы мне предподовать курсы по JavaScript. https://www.cyberforum.ru/ javascript/ thread1217921.html
JavaScript Вывод списка всех форм фрейма-потомка в виде горизонтальной таблицы различными шрифтами https://www.cyberforum.ru/ javascript/ thread1217918.html
Создать программу вывода списка всех форм фрейма-потомка в виде горизонтальной таблицы различными шрифтами, зависящими от номера элемента в списке, если курсор мыши попал на численное поле, в котором...
Int как параметр getElementByID JavaScript
Привет Есть <button onclick="MyFunction()">Тиц</button> ... <tr> <td id="1">1</td> <td id="2">2</td> ...
Не получается вывести св-ва объектов JavaScript
Не могу понять в чем проблема... есть 3 фрейма: в первом тектовое поле и кнопка, по нажатии которой должны выводиться св-ва объекта, имя которого указано в текстовом поле, во втором ссылка, в третьем...
JavaScript Прямой и обратный перевод слов и фраз из заранее приготовленного словаря. Подскажите, пожалуйста, почему не работает код. Позволяет делать прямой и обратный перевод слов и фраз из заранее приготовленного словаря. var vcb=, , , , , https://www.cyberforum.ru/ javascript/ thread1217840.html
JavaScript Трудности с прогрессбаром при отправке файла на сервер https://www.cyberforum.ru/ javascript/ thread1217790.html
Суть вот в чем: посетитель выбирает файл у себя на диске, затем подходящую категорию и нажимает кнопку "Отправить оригинал - макет". Вот ссылка на страницу:test-db.e3w.ru/sendmaketprint.php. При этом...
JavaScript Нужен код карт Мне нужна помощь с сервисом карт. Подробнее есть сайт "Кино" на нем нужно создать статическую страницу на которой будет отображаться интерективная карта от гугла или яндекса или другого сервиса, на... https://www.cyberforum.ru/ javascript/ thread1217778.html
супермизантроп
Эксперт JS
3862 / 2936 / 685
Регистрация: 18.04.2012
Сообщений: 8,540
27.06.2014, 03:43 0

Проверить, содержится ли пробел после знака препинания, и если нет — вставить

27.06.2014, 03:43. Показов 1704. Ответов 1
Метки (Все метки)

Лучший ответ Сообщение было отмечено jetter как решение

Решение

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

поэтому делаем так:
-- перечисляем все знаки препинания в виде одной строки znak

-- перебираем циклом посимвольно исходную строку и каждый символ проверяем на наличие его в строке znak

-- если такого нет, идём дальше, к следующему символу

-- а если символ является знаком препинания (т.е. он есть в строке znak), то смотрим на последующий символ исходной строки

-- если последующий символ не пробел, то вставляем его, а если пробел, то переходим к следующему

-- ВАЖНО: каждый раз, смотря на "последующий символ", проверяем - а есть ли он? - вдруг это заключительный символ в исходной строке

-- и, наконец, последний нюанс: когда мы при необходимости добавляем недостающий пробел, внутри цикла увеличиваем индекс на единицу - зачем нам проверять следующий символ, если мы сами его туда вставили и точно знаем, что это пробел, а не знак препинания?

-- всё это реализуем с помощью формы (которую почему-то очень любят преподаватели) и, заодно, произведя исправление, выделяем строку в поле ввода, чтобы показать, что процесс завершен

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=windows-1251">
<title>ÄÇ</title>
<script>
function correction (str)
{
// ñîçäà¸ì ñòðîêó èç çíàêîâ ïðåïèíàíèÿ
var znak = '.,:;!?';
 
// îðãàíèçóåì öèêë ïåðåáîðà ñèìâîëîâ èñõîäíîé ñòðîêè ïî èíäåêñó j
for (var j = 0; j < str.length; j++)
   {
   // åñëè î÷åðåäíîé ñèìâîë ßÂËßÅÒÑß çíàêîì ïðåïèíàíèÿ è ÎÄÍÎÂÐÅÌÅÍÍÎ îí ÍÅ ïîñëåäíèé
   if (znak.indexOf (str.charAt (j)) != -1 && (j + 1 < str.length))
      {
      // è åñëè ïîñëåäóþùèé ñèìâîë ÍÅ ïðîáåë
      if (str.charAt (j + 1) != ' ')
         {
         // ïîëó÷àåì ïîäñòðîêó îò íà÷àëà èñõîäíîé ñòðîêè äî íàéäåííîãî çíàêà ïðåïèíàíèÿ
         var part = str.substring (0, j + 1);
         // ïðîèçâîäèì çàìåíó ïîäñòðîêè íà íå¸ æå + ïðîáåë
         str = str.replace (part, part + ' ');
         // óâåëè÷èâàåì èíäåêñ öèêëà íà åäèíèöó
         j++;
         }
      }
   }
// âîçâðàùàåì èñïðàâëåííóþ ñòðîêó
return str;
}
</script>
</head>
<body>
<form>
   <input name="mytext" size="150">
   <input type="button" value="Èñïðàâèòü"
          onclick="var obj = this.form.mytext;
                   obj.value = correction (obj.value);
                   obj.select ()">
</form>
</body>
</html>
проверял, вставив строку Строка:тут нет пробела, а здесь он есть. И есть последний восклицательный знак;после него пробел НЕ НУЖЕН!
проверьте и вы

PS. уверен, что использованные здесь методы работы со строками - charAt (), indexOf (), substring (), replace () - вы должны были проходить

Вернуться к обсуждению:
Проверить, содержится ли пробел после знака препинания, и если нет — вставить
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.06.2014, 03:43
Готовые ответы и решения:

Написать функцию, которая проверяет что в строке содержится один пробел после знака препинания, и если нет - вставляет.
Написать функцию, которая проверяет что в строке, переданной в качестве аргумента, содержится один...

Как вставить пробел после знака препинания, если его там нет?
Приветствую! Такую вот программку реализовал. Она считывает строку (как сделать, чтобы считывала...

В заданном тексте после каждого знака препинания («.», «,», «:», «;») вставить пробел, если его там нет.
В заданном тексте после каждого знака препинания («.», «,», «:», «;») вставить пробел, если его там...

После каждого знака препинания (".", ",", ";") вставить в строку пробел, если там его нет
Выполните задания с использованием библиотечного класса string. Даны строка S. Необходимо после...

__________________
1
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.