2010-08-30 3 views
3

Я использую следующий фрагмент кода, но ее не работает :-(Как проверить заглавными алфавитов во входной строке, используя JQuery

//First four characters of input Text should be ALPHABATES (Letters) 

    if (($("#txtId").val()).length >= 4) { 
     var firstFourChars = $("#txtId").val().substring(0, 4); 
     var pattern = new RegExp('[^A-Z]'); 

     if (firstFourChars.match(pattern)) 
      isValid = true; 
     else 
      isValid = false; 
    } 

ответ

2

Вам не нужно использовать подстроку(). Ваше регулярное выражение может выполнить всю вашу работу. В RegExp вы используете совпадения с символами, которые НЕ находятся между A и Z. Как сказал Авинаш,^[A-Z] {4} будет соответствовать, если ваши первые 4 символа имеют прописные буквы. «^» в начале вашего регулярного выражения сообщает, что следующее начало строки. При размещении внутри квадратных скобок он возвращает диапазон символов, которые вы хотите сопоставить.

+0

Спасибо за подробное объяснение. :-) – Biki

+0

Если возможно, дайте мне знать, что лучше проверить это, либо событие onblur, либо событие onkeyupv? Я нашел, onkeyup пожаров на каждом введенном символе, но более последовательный, затем onblur. – Biki

+0

Это зависит от поведения, которое вы хотите достичь: как вы сказали, клавиша запускается при каждом нажатии клавиши, а размытие срабатывает только тогда, когда фокус покидает поле. – PJP

8

изменения /[^A-Z]/ в /^[A-Z]/

Например:

var a = "ABCJabcd"; 
console.log(a.match(/^[A-Z]{4}/)); 
+0

Спасибо, теперь он работает отлично :-). – Biki

0

Регулярное выражение должно быть/[^ AZ] {4}/если вы хотите совместить 4 строчных буквы.

0

Для обнаружения в середине больших работ изменить/^ [AZ]/к/[AZ]/

Example text: " asşldla ABCJ abcd AÇALASD" 

$('.Order input').change(function(){ucheck($(this).val())}); 
$('.Order input').keyup(function(){ucheck($(this).val())}); 

    function ucheck(a) { 
     if(a.match(/[A-ZĞÜŞİÖÇ]{4}/)){ 
$('.Order #Error').html(' UPPERCASE'); 
}else{$('.Order #Error').html('Capitalize');} 
    } 
0

Если они должны быть капитал:

const startsWithCapitals = /^[A-Z]{4}/.test(string); 

Или, если они просто нужно быть буквы, добавить i для игнорирования регистра:

const startsWithLetters = /^[a-z]{4}/i.test(string); 

^ означает начало Strin g и {number} означает x копии

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