2014-10-17 4 views
0

Что такое регулярное выражение для студентов знаков, как это: (.) ​​12,5, 99,5, 87, 1,66Javascript регулярного выражения для очков

  • поля может быть пустым
  • макс символов длиной с составляют 5, как это : 99.99

  • метки находятся между 0 и 100

Я использовал это, но он не работает

var rmark = /^\d{0,1}\.|(\d{0,4})$/; 


     var txtS = $(":text"); 

     for (var i = 0; i < txtS.length; i++) { 
      if (!rmark.test(txtS.eq(i).val())) { 
       er = 1; break; 
      } 
     } 
+0

какое усилие вы сделали? –

+0

var rmark = /^\d{0,1}\.|(\d{0,4})$/; – Takpar

+0

Это часть запятой, или вы сначала разделяете запятые? Потому что, если они являются частью этого, то '^' и '$' здесь не будут полезны. –

ответ

1

http://regex101.com/r/cX1qL4/1

/^\d{1,2}(\.\d{1,2})?$/ 

А это значит ...

^   - from the start of the string 
    \d{1,2} - 1 or 2 digits 
    (  - capture group that is not required 
    \.  - escaped dot 
    \d{1,2} - 1 or 2 digits 
)?  - this group is not required to present in the string 
$   - end of the string 

пс: если он может быть пустым, то /^(\d{1,2}(\.\d{1,2})?)?$/

имп: если диапазон от 0 до 100, то /^(100|(\d{1,2})(\.\d{1,2})?)?$/

или вы можете проверить его здесь - выполнить фрагмент

$(function(){ 
 
$('input').keyup(function() { 
 
    var regexp = /^(100|(\d{1,2})(\.\d{1,2})?)?$/; 
 
    if (!regexp.test($(this).val())) 
 
    $(this).addClass('bad'); 
 
    else 
 
    $(this).removeClass('bad'); 
 
}); 
 
});
.bad {color:red;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script> 
 
<input type="text">

+0

Извините меня, диапазон от 0 до 100 – Takpar

+0

@Takpar обновлен, дайте мне еще одну минуту. Готово. – Cheery

1

Так как кажется, строки, которые вы хотите проверить происходят из <input type="text"> элементов, вы можете использовать HTML5 проверки вместо JS один, и пусть браузер сделает это за вас:

<input type="number" max="99.99" min="0" step=".01" /> 

Но даже если вам нужно проверить с помощью JS, вы можете использовать проверку HTML5 вместо регулярных выражений:

var isValid = (function() { 
    var el = document.createElement('input'); 
    el.type = "number"; 
    el.max = 99.99; 
    el.min = 0; 
    el.step = .01; 
    return function isValid(value) { 
     el.value = value; 
     return el.validity.valid; 
    }; 
})(); 
Смежные вопросы