2012-04-04 12 views
1

Was wäre der reguläre Ausdruck, um zu prüfen, ob eine gegebene Zeichenkette mindestens eine Zahl und einen Großbuchstaben enthält? Vielen Dank im VorausJavascript regulärer Ausdruck für mindestens eine Zahl und einen Großbuchstaben

Ich mag dieses

function validate_pass{ 
var var_password = document.getElementById("npassword").value; 
else if (!(/^(?=.*\d)(?=.*[A-Z]).+$/).test(var_password))){ 
    msg = "Password should contain atleast."; 

    showErrorMsgPassword(msg); 
    $('#npassword').val(''); 
    $('#cpassword').val(''); 
    return false; 
    } 

else return true; 
+0

wie '/ [0-9] + [A-Z] + /' oder '/ [0-9] + [A-Z] /'? – mshsayem

+1

Sie müssen weitere Informationen angeben, z. B. Beispiele für das, was Sie abgleichen möchten und was nicht * übereinstimmen soll. Sie haben hier nichts angegeben, was Ihre Frage beantworten könnte. Bitte bearbeiten Sie, um es zu verbessern, damit Leute Ihnen helfen können. Vielen Dank. :) –

+0

Die Ziffer und Großbuchstaben können überall angezeigt werden ist die Zeichenfolge –

Antwort

1

Es ist eine Weile her, seit ich das getan habe, und ich bin ziemlich Sicher, es gibt einen effizienteren Weg als dies. Sie müssen positive Lookaheads verwenden, aber es sollte eine Möglichkeit geben, die Platzhalter in ihnen zu entfernen:

Diese Regex (/^(?=.*[A-Z])(?=.*\d).*$/) wird das gesamte Kennwort zurückgeben, wenn es die Kriterien erfüllt.

('a3sdasFf').match(/^(?=.*[A-Z])(?=.*\d).*$/);

0

Wie unten tue:

/(\d.*[A-Z])|([A-Z].*\d)/ 

Um zu testen, eine Zeichenfolge abgestimmt oder nicht:

var str = "abc32dQef"; 
var is_matched = /(\d.*[A-Z])|([A-Z].*\d)/.test(str); 
+1

@mshsayem Hast du versucht, '/ (\ d. * [A-Z]) | ([A-Z]. * \ D)/.test (" abc32dQef ")'? Hinweis: Wenn Sie die Endung abgleichen möchten, sollten Sie '$' verwenden. – xdazz

2

Wenn der Wunsch, ist Testen Sie einen String, um zu sehen, ob er mindestens eine Ziffer und mindestens einen Großbuchstaben in beliebiger Reihenfolge hat mit anderen Zeichen zu dürfen, dann wird diese Arbeit:

var str = "abc32Qdef"; 
var re = /[A-Z].*\d|\d.*[A-Z]/; 
var good = re.test(str);​ 

Arbeiten Demo mit einem Bündel von Testfällen hier: http://jsfiddle.net/jfriend00/gYEmC/

+0

Sie könnten '.test' Methode des Regex-Objekts verwenden. – xdazz

+0

@xdazz - Ich wechselte zu '.test()'. – jfriend00

Verwandte Themen