http://blagtalkan.ru
http://oktpoisk.ru
http://mysorru.ru/
http://san-okt.ru/
http://pes6evolution.ru/
http://chasikigov.ru
http://serafimsovet.ru
http://filmsgov.ru
http://free-domen.ru
http://fithonda.ru/forums/index.php
http://avtogov.ru
http://www.1001bilet.com.ua/base/on-line/
http://pravilavoini.ru
http://school41ufa.ru
http://rusrav4.ru
Вспомогательные функции | Книга AJAX
 

Прежде чем углубиться в изучение основного программного кода, рас¬смотрим несколько вспомогательных функций. Вспомогательные функции - это такие функции, которые не являются обязательными для данного конкретного приложения, но они выполняют некоторые важные действия. Приложение AjaxMail имеет несколько вспомога¬тельных функций.
Первая вспомогательная функция нам уже встречалась. Функция get-RequestBody() была представлена в главе 2. Ее назначение - сериализа-ция кода HTML для последующей его передачи объекту XMLHttp. Те¬перь эта функция потребовалась в приложении AjaxMail. Вот ее про¬граммный код (для освежения памяти):
function getRequestBody(oForm) { var aParams = new ArrayO;
for (var i=0 ; i < oForm.elements.length; i++) {
var sParam = encodeURIComponent(oForm.elements[i].name); sParam += "=";
sParam += encodeURIComponent(oForm.elements[i].value); aParams.push(sParam);
Это тот же самый код, что приводился в главе 2, и он будет ван в процедуре отправки электронного сообщения.
Одна из проблем при работе с электронными адресами за в том, что они могут быть записаны в разных форматах. Напр
myname@somewhwre.com
• Настоящее Имя
• «Настоящее Имя»
Если вам часто приходится иметь дело с электронной почтой, форматы должны быть вам знакомы, т. к. они используются в шинстве программ для работы с электронной почтой. В режиме смотра содержимого папки приложение AjaxMail отображает настоящее имя отправителя. Если почтовое отправление не i настоящего имени, то отображается адрес электронной почты, шения этой задачи предназначена вспомогательная функция с1 EmaiK):
var reNameAndEmail = /(.*?)<(.*?)>/i;
function; cleanupEmail(sText) {
if (reNameAndEmail.test(sText)) {
return RegExp.$1.replace(/"/g, ""); } else {
return sText;

Самое важное в функции - это регулярное выражение reNameAr которое дает совпадения как с настоящим именем, так и с электронной почты независимо от наличия кавычек. Внутри производится поиск совпадений в тексте входного аргумента с лярным выражением. Если метод test() возвращает значен» значит, электронный адрес содержит обе его составляющие, и необходимо извлечь из него настоящее имя отправителя (кс храняется в RegExp. $1). Однако это имя может быть заключено вычки, поэтому на следующем шаге все символы кавычек в мещаются пустой строкой с помощью метода replace(). Если же дений с регулярным выражением найдено не будет, значит, во ном аргументе содержится только адрес электронной почты, он возвращается без каких-либо изменений.
Последняя вспомогательная функция называется htmlEncode(). мещает символы «больше» (>), «меньше» (<), амперсанд (&) и ки ("") на соответствующие им сущности HTML. Тем самым и ется возможность генерации небезопасного кода HTML при электронной почты:
Эта функция также проверяет, присутствует ли вообще какой-либо текст во входном аргументе. Если sText содержит значение null, то функция возвращает пустую строку, в противном случае она выполня¬ет замену с помощью метода replace ().