2010-08-30 130 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

你不需要使用substring()。你的正則表達式可以爲你做所有的工作。您使用的RegExp與不在A和Z之間的字符匹配。正如Avinash所說,如果您的前4個字符是大寫,^ [A-Z] {4}將匹配。在您的正則表達式開頭的「^」表示以下內容應該是字符串的開頭。放置在方括號內時,它將恢復想要匹配的字符範圍。

+0

感謝您的詳細解釋。 :-) – Biki 2010-08-30 11:37:42

+0

如果可能的話讓我知道它更好地驗證上述,無論是onblur事件還是onkeyupv事件? 我發現,onkeyup會對每個輸入的字符進行觸發,但是會比onblur更加一致。 – Biki 2010-08-30 11:42:25

+0

這取決於你想要達到的行爲:正如你所說的,每個擊鍵都會觸發鍵控,只有當焦點離開該字段時纔會觸發模糊。 – PJP 2010-08-30 13:50:04

8

變化/[^A-Z]//^[A-Z]/

例如

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

謝謝,它現在工作正常:-)。 – Biki 2010-08-30 11:06:19

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); 

^意味着〜應變的開始g和{number}表示x拷貝

相關問題