2013-04-23 57 views
-2

我是JavaScript新手,无法找到需要的确切代码。如何获得只有两个字母作为字母,并保留为文本区域中的数字

我想要一个maxlength =“5”的文本字段,它应该看起来像ex:AE456,LM975。即前两个字母应该是字母,接下来的三个字母应该是数字。

文本区域只应该按照此模式接受输入。我不想要任何警报。只需要接受只有这种模式才能输入的内容。 Javascript是可取的。任何帮助都非常可观。 在此先感谢。

回答

3

HTML5支持模式,其中一个字段可以按照提供的正则表达式接受值。你可以在这里找到相关的帖子。 Regex Patterns for HTML5 Text Field

但是,如果你想支持旧的浏览器,那么你必须重视的事件,如“按键”输入栏,以及处理该事件验证输入

3

如果你有这样的HTML:

<input type="text" id="text1" /> 

那么你可以使用此Javascript:

function validateInput() { 
    var val = document.getElementById("text1").value; 
    return /[A-Z]{2}\d{3}/i.test(val); 
} 

,并调用它像:

if (validateInput()) { 
    // Matches pattern: @@### 
} 

DEMO:http://jsfiddle.net/GgQsz/

这允许开始时使用大写和小写字母字符。如果您只想允许大写,请删除正则表达式的i标志。

+0

为什么不是'/ [a-z] {2} \ d {3}/i' – 2013-04-23 06:12:13

+0

@Derek朕会功夫因为我是个白痴。好点:) – Ian 2013-04-23 06:12:27

+1

看看这个;)http://jsfiddle.net/DerekL/Y4Ztn/ – 2013-04-23 06:20:51