2013-03-19 7 views
0
$('.hourfield').focusout(function() { 

    var h; 
    var m; 
    var timeStr = ""; 
    var time = ""; 
    var newFormat = ""; 

    timeStr = $(this).val(); 

    //Here I would like to remove all characters which isn't numbers 
    timeStr = timeStr.replace("/[^0-9\.]+/g",""); 

    if(timeStr > 0) { 

     h = timeStr.substr(0,2); 
     m = timeStr.substr(2,2); 

     newFormat = h+':'+m; 

     //Add new values 
     $(this).val(newFormat); 
    } 

}); 

URL to websiteУдалить все символы из строки Javascript

+1

В чем проблема? – hop

+1

Регулярное выражение, которое вы написали, ''/[^ 0-9 \.] +/G "'. Вы хотели бы, чтобы это было регулярное выражение, но вы получили строку. Потеряйте цитаты, и все будет в порядке. – average

+0

Функция replace(), похоже, не удаляет символы, если вы, например, вставляете «10.00» в поле ввода. Я хотел бы, чтобы он удалил точку, прежде чем переформатировать ее с помощью «10:00». –

ответ

3

Вы указали строку, чтобы заменить заключая регулярное выражение в кавычки. Удалите кавычки, чтобы указать Regex.

timeStr = timeStr.replace(/[^0-9\.]+/g,""); 
0
$('.hourfield').focusout(function() { 

    var h; 
    var m; 
    var timeStr = ""; 
    var CleanTimeStr = ""; 
    var newFormat = ""; 

    timeStr = $(this).val(); 

Я сделал некоторые незначительные изменения в правила замены() и только удален «точка», которая была главной целью

CleanTimeStr = timeStr.replace(/[.]+/g,""); 

    if(CleanTimeStr > 0) { 

     h = CleanTimeStr.substr(0,2); 
     m = CleanTimeStr.substr(2,2); 

     newFormat = h+':'+m; 

     //Add new values 
     $(this).val(newFormat); 
    } 
}); 

Так что теперь он работает отлично , благодаря!

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