2015-03-26 4 views
0

Я должен создать функцию обрезки для моего класса javascript. Я думал, что все правильно, но по какой-то причине это не сработает. Может ли кто-нибудь проверить мой код, чтобы увидеть, что мне не хватает или как заставить его работать?Почему моя функция обрезки не работает?

window.onload=function() 
{ 
    window.alert(trim("   test")); 
}; 

function trim(data) 
{ 
    var result; 
    var whitespace; 
    var start; 
    whitespace="\n\r\t\f"; 
    start=0; 

if(typeof data === "string") 
    { 

    while(start<data.length, data.charAt(start)===whitespace) 
    { 
     start=start+1; 
    }      //end loop scope 

    var end; 
    end=data.length-1; 

    while(end>=0, data.charAt(end)===whitespace) 
    { 
     end=end-1; 
    }      //end loop scope 

    if(end<start) 
    { 
     result=""; 
    } 

    else 

    { 
     result=data.substring(start, end+1); 
    } 
} 

else    //else for first if statement 

{ 
    return result; 
} 

return result; 
} 
+1

Сомневаюсь один символ будет равен '\ п \ г \ т \ f' Кроме того, где это символ пробела? – epascarello

+0

Пожалуйста, уточните, что часть «это не сработает». Что не работает? Каков результат, который вы получаете, и чего вы ожидаете? –

+0

В моем листе присваивания мне было задано пробел «\ n \ r \ t \ f». Пробелы - это пробелы перед словом «test» –

ответ

0

Вы должны использовать \s для сопоставления пробелов. Я также упростил эту функцию для вас.

function trim(data) { 
 
    
 
    if(typeof data === "string") { 
 
    return data.replace(/(^[\s\r\n\t\f]+|[\s\r\n\t\f]+$)/g, ''); 
 
    } 
 
    return data; 
 
} 
 

 
var result = trim('    test    '); 
 
document.write(result); 
 
document.write('<br>Length of string: '+result.length);

0
function trim(string) 
{ 
    return string.trim(); 
} 

:-)

+1

Недостаточно jQuery. Вы должны полностью использовать ['$ .trim()'] (http://api.jquery.com/jQuery.trim/) для дополнительных очков. –

Смежные вопросы