Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 24.04.2012, 19:59
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от trikadin Посмотреть сообщение
melky, надоест) А твои варианты?)
есть тут одна идея

псевдокод :
var значение = /*2px, 3345PX, 62in, 3%, 5* .. значение, короче/;
if( верное(значение) ){
    результат = рега.exec(значение); 
}

function верное( значение ){
    // проверить посредством HTML (элемент)
}

код :

PS затестите, пожалуйста, в виндовых браузерах. у меня под рукой только FF и CH
function parseValue(){

    var 
        dummy = document.createElement('b'),
        reg = /(\d+)(%|\w*)/;

    parseValue = function(value){
        if(parseValue.isNormal(value)){
            reg.exec(value);
            return { value: RegExp.$1, dimension: RegExp.$2 };
        }
    };

    parseValue.isNormal = function(value){
        if(value === "0") {
            return true; // "чистый" нуль все вертят, как хотят.
        } else {
            // IE FIX : он метает ошибку, если значение неверное.
            try {
                dummy.style.fontSize = value;  
            } catch(e) {
                return false; // если неверное значение, IE породит ошибку (итог: значение неверное)
            }
            return dummy.style.fontSize === value;
        }
    };

    return parseValue.apply(this, arguments);
}

var a="1px 2in 4% 0 0px 0% 65334em СТОЛpx ы%".split(' ');
var i = 0;
var parsed;
while(i in a){  
    parsed = parseValue(a[i]);
    a[i] = a[i++]+" => "+ (parsed?parsed.value+":"+parsed.dimension:'ничего');
}
alert(a.join('\n'));

Последний раз редактировалось melky, 24.04.2012 в 20:36. Причина: допилил нормальную проверку.
Ответить с цитированием
  #22 (permalink)  
Старый 24.04.2012, 20:07
Аватар для Раед
''
Отправить личное сообщение для Раед Посмотреть профиль Найти все сообщения от Раед
 
Регистрация: 11.12.2011
Сообщений: 636

melky,
Ну в FF вроде нормально работает
Ответить с цитированием
  #23 (permalink)  
Старый 24.04.2012, 20:09
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от Раед Посмотреть сообщение
melky,
Ну в FF вроде нормально работает
интересует в первую очередь IE
Ответить с цитированием
  #24 (permalink)  
Старый 24.04.2012, 20:11
Аватар для Раед
''
Отправить личное сообщение для Раед Посмотреть профиль Найти все сообщения от Раед
 
Регистрация: 11.12.2011
Сообщений: 636

Сообщение от melky
интересует в первую очередь IE
Зашёл через ИЕ7, так он вообще при нажатии на Посмотреть пишет, что необходимый функционал не поддерживается вашим браузером
Ответить с цитированием
  #25 (permalink)  
Старый 24.04.2012, 20:24
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от Раед Посмотреть сообщение
Зашёл через ИЕ7, так он вообще при нажатии на Посмотреть пишет, что необходимый функционал не поддерживается вашим браузером
я забыл про array.map в примере. сейчас поправлю.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Java-скрипт для поиска. 2oo Общие вопросы Javascript 25 11.12.2010 13:10
Подбор по параметрам для поиска в каталоге товаров(интерестная версия) dmi3y Ваши сайты и скрипты 5 25.12.2009 13:55
Модуль для работы с модулями JSprog Ваши сайты и скрипты 29 02.09.2009 13:31
Регулярное выражение для поиска смайлов. NightmareZ Общие вопросы Javascript 13 23.06.2009 13:12