2012-01-01 137 views
1

我使用下面的代码来检查用户输入是否小写。我会允许字符从az。没有其他字符允许。只允许小写字符

JavaScript文件:

var pat = /[a-z]/; 

function checkname() 
{ 
    var t = $("input[name='user_name']").val(); 

    if(pat.test(t) == false) 
    { 
    alert('Only lowercase characters allowed'); 
    } 
} 
//... other functions 

但这DONOT工作的所有时间。如果我输入industrialS,它不会找到大写'S'。

我也试过:/^[a-z]$//[a-z]+/。但不工作。

请帮助我。

+2

开始学习正则表达式:'/^[AZ] + $ /'例子:http://jsfiddle.net/5wt9S/1/ – noob 2012-01-01 16:09:21

+1

您也可以考虑只lowercasing WH用户输入并使用它,而不是强迫他们输入小写字母。你甚至可以在他们打字的时候直播,让他们看到它发生。更好的可用性教他们,给他们展示并修复它们,而不是向他们展示错误信息。 – jfriend00 2012-01-01 16:40:03

回答

6

您的正则表达式只是检查字符串是否有任何小写字符。试试这个:

var pat = /^[a-z]+$/; 

该模式只会匹配具有一个或多个小写字母字符并且没​​有其他字符的字符串。开始处的“^”和结尾处的“$”是锚点,它们与测试字符串的开头和结尾相匹配。

+0

谢谢。我现在明白了。 – 2012-01-01 16:15:09

-1

你的正则表达式应该是:/^[AZ] + $/

+0

谢谢。我知道了。 – 2012-01-01 16:28:54

-1

因为所有你想要的是小写字母,而不是只告诉用户她/他做错了什么事,我会解决它:

function checkname() { 
    var disallowed = /[^a-z]/gi; // g=global , i=case-insensitive 
    if (this.value == disallowed) { 
     //delete disallowed characters 
     this.value = this.value.replace(disallowed,''); 
     alert('Only lowercase letters allowed'); 
     //instead of an alert, i would use a less intrusive fadeIn() message 
    } 
    this.value = this.value.toLowerCase(); 
} 
0

if((/[a-z]/.test(email))==true){//allow the small characters}