|
|
|
| Предложение только с Заглавной (не кажд.буква в слове). | |
|
|
|
|
|
|
|
для: Dinya_1
(10.09.2008 в 06:24)
| | С помощью JS вы никак не сможете дисциплинировать пользователя. Обработайте текст на сервере как вам нужно будет, есть для этого функции в РНР. | |
|
|
|
|
|
|
|
для: sim5
(10.09.2008 в 06:55)
| | Я думаю это возможно ,
для этого нужно :
1) 2 массива верхнего и нижнего регистра + массив символов(знаков)
2) привязываться к методу 'onchange' ,
3) функция проверки , последняя введенная буква должна быть нижнего регистра, если предыдущая буква "не пробел"(или знак препинания ) и "нижнего регистра" если же пробел (или знк препинания) предыдущий то она должна быть верхнего регистра.
PS Исполнить могу вечером так как сейчас убегаю в универ:) | |
|
|
|
|
|
|
|
для: zzDimazz
(10.09.2008 в 08:53)
| | Кто же спорит, что нельзя. Вот только на сервере это делать выгоднее. | |
|
|
|
|
|
|
|
для: sim5
(10.09.2008 в 09:02)
| | вы правы, но не опытный пользователь не сможет обойти этот запрет с буквами , но стоит в УРЛ строке написать javascript:document.getElementById("FORM_").submit();
и все станет как было) | |
|
|
|
|
|
|
|
для: zzDimazz
(10.09.2008 в 09:34)
| | хотя это меньше будет нагружать сервер | |
|
|
|
|
|
|
|
для: zzDimazz
(10.09.2008 в 09:34)
| | Стоит просто отключить JS, и шли что хочешь, а автор, как следует из "негодования" его вопроса не о "честных" пользователях речь ведет. | |
|
|
|
|
|
|
|
для: Dinya_1
(10.09.2008 в 06:24)
| | Приблизительно так:
<?
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=win-1251">
<script>
function sfs (x) //функция определения индекса первого непробельного символа
{
for (var j = 0; j < x.length; j++)
if (x.charAt (j) != ' ' && x.charAt (j) != '\t') break;
return j;
}
function myFUNC () //функция обработки содержимого поля ввода
{
var obj = document.forms.myFRM.myTXT;
//удаляем все возвраты каретки
var txt = obj.value.replace (/\r/g, '');
//определяем самый первый непробельный символ содержимого
var z = sfs (txt);
//первый непробельный символ содержимого переводим в верхний регистр
var txt = txt.substring (0, z) + txt.charAt (z).toUpperCase () + txt.substr (z + 1);
//создаём перечень признаков конца предложений
var sen = new Array ();
sen [0] = '. ' ; sen [1] = '! ' ; sen [2] = '? ' ;
sen [3] = '.\n'; sen [4] = '!\n'; sen [5] = '?\n';
//перечень, разумеется, можно дополнить
for (var s, j = 0; j < sen.length; j++)
{
//делим содержимое по j-му признаку конца предложений
s = txt.split (sen [j]);
if (s.length > 0)
//перебираем все "предложения"
for (var z, k = 1; k < s.length; k++)
{
//определяем первый непробельный символ "предложения"
z = sfs (s [k]);
//первый непробельный символ "предложения" переводим в верхний регистр
s [k] = s [k].substring (0, z) + s [k].charAt (z).toUpperCase () + s [k].substr (z + 1);
}
//возвращаем содержимое, "сливая" "предложения" по j-му признаку конца предложений
txt = s.join (sen [j]);
}
//возвращаем полю ввода измененное содержимое
obj.value = txt;
}
</script>
</head>
<body>
<form name="myFRM">
<textarea cols="80" rows="20" name="myTXT" onblur="myFUNC ()"></textarea>
...
</form>
</body>
</html>
|
| |
|
|
|
|
|
|
|
для: PAT
(10.09.2008 в 13:17)
| | не смог запустить эту функцию
наверное полкчается что-то типа такого
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=win-1251">
<script>
// <?
function myFUNC (x) //функция обработки содержимого поля ввода
{
var txt = x.value.replace(
/([A-Za-zЁёА-я])([A-Za-zЁёА-я]+)/g,
function (str, p1, p2) {
return p1.toUpperCase() + p2.toLowerCase();
});
alert(txt);
x.value = txt;
}
/* ?> */
</script>
</head>
<body>
<form name="myFRM">
<textarea cols="80" rows="10" name="myTXT"
onchange="myFUNC(this); return true;"></textarea>
...
</form>
</body>
</html>
|
| |
|
|
|
|
|
|
|
для: xx77
(10.09.2008 в 14:12)
| | функция запускается по событию ONBLUR - при уходе фокуса с <TEXTAREA>. Т.е. надо мышей ткнуть в любом месте экрана монитора вне <TEXTAREA>, или нажать клавиши TAB или Windows.
ONBLUR здесь надежнее, чем ONCHANGE, потому как если вы покинете <TEXTAREA>, ткнув в адресную строку браузера, то ONCHANGE не сработает и вы вполне сможете воспользоваться предложением, озвученным выше участником zzDimazz (10.09.2008 в 09:34). А вот при задействовании ONBLUR такой фокус не пройдёт.
Предложенный вами скрипт работает не так, как это нужно топикстартеру. Он хотел, чтобы заглавными были первые символы всех ПРЕДЛОЖЕНИЙ, а у вас с заглавной начинаются все СЛОВА.
Разница между понятиями "СЛОВО" и "ПРЕДЛОЖЕНИЕ" для вас разве не очевидна? :-)
И напоследок вопрос - для какой надобности вызов функции у вас снабжен инструкцией return true? Что, по-вашему, получится, если вернуть false? И что будет, если прописать return ('а на хрена этот return здесь нужен?')? | |
|
|
|
|
|
|
|
для: PAT
(10.09.2008 в 14:38)
| | return() у меня постоянно почему.то закрадывается чисто случайно, или просто на всякий случай ))
> Разница между понятиями "СЛОВО" и "ПРЕДЛОЖЕНИЕ"
если чесно, иногда разницы совсем нет ))
а иногда разница есть , но границы слов и предложений многозначительно предоставлены
для расстановки самим читающим , и всей своей многозначительностью несут пищу для размышлений.
если считать что конец предложения это точка , с пробелами после неё
, то многим даже и не понять , то что иногда могут написать ))
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=win-1251">
<script>
// <%
function myFUNC (x) //функция обработки содержимого поля ввода
{
var txt = x.value.replace(
/((^|[!\.\?]\s+)[A-Za-zЁёА-я])([^!\.\?]+)/g,
function (str, p1, p2, p3) {
return p1.toUpperCase() + p3.toLowerCase();
});
alert(txt);
x.value = txt;
}
<!-- %>
</script>
</head>
<body>
<form name="myFRM">
<textarea cols="80" rows="10" name="myTXT"
onchange="myFUNC(this); return true;">
Вот напримеРр
многие пишут так.Границы предлОжений.Экономят на байтах и килОбайтах.)
я пишу какие.то такие слова как.бы лень искать где.же дЕфис, или после кАкого нАжатия на кнопку телЕфона.
И много разных разных полезностей может испортиться
; нельзя будет написАть , а можно только будет написать )
</textarea>
...
</form>
</body>
</html>
|
Это наверное Борман ....... подумал Штирлиц | |
|
|
|
|
|
|
|
для: xx77
(10.09.2008 в 17:24)
| | "На всякую хитрую ж...у найдется свой винт с левой резьбой" (с)
Использованные мною варианты "признаков конца предложения" учитывают, конечно, только относительно ГРАМОТНОГО пользователя: знак препинания + пробел или перенос строки.
Разумеется, можно подвергнуть содержимое <TEXTAREA> стилистическому анализу и, разумеется, при этом всё равно возникнут нерешаемые проблемы (типа проставить запятую в предложении "казнить нельзя помиловать").
Несмотря на это, всё же полагаю, что мой ответ МНОГО БЛИЖЕ, чем ваш, к решению той задачи, коя поставлена автором вопроса.
Ибо ваш ответ - тоже абсолютно правильный - заключается в том, что "фигня это всё и ничего такого делать не стОит" :-)
PS. А насчёт очевидного преимущества ONBLUR перед ONCHANGE, вы, похоже, так и не поняли :-) | |
|
|
|