Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.09.2014, 21:46
Аспирант
Отправить личное сообщение для serrrgggeee Посмотреть профиль Найти все сообщения от serrrgggeee
 
Регистрация: 15.08.2014
Сообщений: 46

функции с замыканием
скажите где берутся аргументы a,b в функции чтото не пойму
String.method('deentityify', function (){

//Таблица сущностей. Отображает имена сущностей на символы.

var entity = {
	quot: '"'
	lt:   '<'
	gt:	  '>'
};

// Возвращаем метод deentityify.
	return function () {
	
	// Метод deentityfy. Метод строки вызывается для эамены найденной
	// подстроки, начинающейся с символа '&' и заканчивающейся символом ';'.
	// Если символы внутри есть в таблице сущностей, то эти элементы
	// заменяются символами из таблицы. Метод используется в регулярных 
	// выражениях
	
			return this.replase(/&([A&;]+);/g,
				function (a, b) {
					var r = entity[b];
					return typeof r === 'string' ? r : a;
				}
			);
	
	};
}());



document.writeln(
	'&lt;&quot;&gt;'.deentityfy()); // <">
Ответить с цитированием
  #2 (permalink)  
Старый 28.09.2014, 00:37
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

Из регулярного выражения. Читай раздел Функция замены
Ответить с цитированием
  #3 (permalink)  
Старый 28.09.2014, 08:43
Аспирант
Отправить личное сообщение для serrrgggeee Посмотреть профиль Найти все сообщения от serrrgggeee
 
Регистрация: 15.08.2014
Сообщений: 46

прочитал, но не понял, если логически, то а достается выражение а b позиция в таблице на которую следует произвести замену?
Ответить с цитированием
  #4 (permalink)  
Старый 28.09.2014, 15:38
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

Сообщение от serrrgggeee
логически
А не надо логически, нужно доки читать. И в статейке, которую я давал, всё доходчиво написано. Применительно к твоей регуляки (которая, к слову, с ошибкой: вместо "A" должно быть "^"): первый аргумент - совпавшая подстрока, например, &lt;, вторым - совпадение в скобках, например, lt, третьим - позиция, четвертым - вся строка. Короче, в трёх соснах заблудился, разбирайся.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменение прототипа функции tsigel Общие вопросы Javascript 11 15.05.2014 01:03
Добавление функции внутрь другой функции Lion_astana jQuery 9 28.12.2013 14:33
пользовательские cобытия и функции jquery hurt3 jQuery 2 08.07.2013 09:13
Установить имя конструктора Андрей Параничев Общие вопросы Javascript 8 17.11.2011 10:09
arguments вызвавшей функции mister_maxim Общие вопросы Javascript 4 12.10.2010 16:21