Тема: OneZero jquery plugin
Гілка javascript якась аж дуже пуста Вирішив заповнити цей пробіл. Ось кльовий плагін для програмістів. Кльовий він 2ма штуками. Перша шутка це те що він робить, інша штука як.
Була собі картинка:
Інет гудів і всі репостили. Я вирішив не зволікати і написати плагін який буде перетворювати всі слова в 0110 ітд
Ось результат роботи http://funivan.com/?rundemo=onezero
Про першу штуку розказав. Друга тєма це як він це робить. Основною цікавинкою є те що ми маємо заміняти тілкьи текст на нулі і одиниці. Тобто код не рухати. Ми вибираємо ноди і за допомогою nodeType дізнаємось чи це є текстова нода. Якщо текстова нода заміняємо букви і цифри на нулі і одиниці)
/**
* oneZero plugin for true coders
*
* How to use
*
* $('html').oneZero(); //replace all chars that is valid for default regex in html node
*
* $('#footer').oneZero({charsPattern:/^[0-9]$/i}); //replace all numerical chars in #footer node
*
*
* @demo http://funivan.com/?rundemo=onezero
* @author Ivan Scherbak <funivan@mail.ua>
* @version 6/8/12 5:37 PM
*/
(function($) {
$.fn.oneZero = function(userOptions) {
var options = {
charsPattern : /^[a-z0-9\u0410-\u044F\u0401\u0451єїі]$/i
}
options = $.extend(options, userOptions);
var oneZeroMake = function(node){
var nodeElements = node.contents();
nodeElements.each(function(){
if(this.nodeType==3){
var textArray = this.nodeValue.split("");
for(letterIndex in textArray){
if(options.charsPattern.test(textArray[letterIndex])){
if(textArray[letterIndex].charCodeAt(0)%2){
textArray[letterIndex]='1';
}else{
textArray[letterIndex]= '0';
}
}
}
this.nodeValue = textArray.join("");
} else {
oneZeroMake($(this));
}
})
}
oneZeroMake($(this))
};
})(jQuery);
п.с. Рега що заміняти винесена в опції, я вирішив що можуть бути араби які будуть підключати собі цей скрипт, то хай і вбиваюсь собі свою регу))