2016-07-13 6 views
0

Wie würde ich ein RegEx Muster nur für Text erstellen. Ich habe einen Code, aber ich verstehe nicht, warum es nicht funktioniert.So erstellen Sie ein regExp-Muster nur für Text

document.myform.firstname.onchange = function() { 
    var pattern = new RegExp("\\a-z+", "i"); 
    var isValid = this.value.search(pattern) >= 0; 

    if (!(isValid)) { 
     alert("error"); 
    } else { 
     alert("fine"); 
    } 
}; 
+2

Sie meinen wahrscheinlich '/ [a-z] +/I'. Wie hast du das mit "\\ a-z" verwechselt? – Xufox

+0

document.myform.firstname.onchange = function() { var pattern = neue RegExp ("\\ [a-z] +", "i"); var isValid = this.value.search (Muster)> = 0; if (! (IsValid)) { Warnung ("Fehler"); } sonst { alert ("gut"); } }; –

+1

Geben Sie zusätzliche Details ein, indem Sie Ihre Frage bearbeiten, nicht indem Sie unformatierten Code in Kommentare einfügen. – Xufox

Antwort

1

Die angegebene Regex in Ihrem OP wird die Zeichenfolge \a-z übereinstimmen, haben Sie /[a-z]+/i zu verwenden, wie im Kommentar erwähnt so Ihr Code:

var pattern = new RegExp("\[a-z]+", "i"); 

Statt:

var pattern = new RegExp("\\a-z+", "i"); 

Hoep das hilft.

//Old regex 
 
var pattern = new RegExp("\\a-z+", "i"); 
 
console.log('11\a-z11'.search(pattern)>=0); //true 
 
console.log('1111'.search(pattern)>=0); //false 
 
console.log('11a11'.search(pattern)>=0); //false 
 

 
console.log('----------'); 
 

 
//New regex 
 
var pattern = new RegExp("\[a-z]+", "i"); 
 
console.log('1111'.search(pattern)>=0); //false 
 
console.log('11a11'.search(pattern)>=0); //true

Verwandte Themen