强制不同位置的不同角色

时间:2012-10-04 17:15:53

标签: javascript html input numerical alphabetical

我目前正在开展一个项目,我需要使用邮政编码从数据库中获取街道/城市详细信息。荷兰邮政编码使用“1111 AA”格式,我希望在单个输入字段中输入,同时强制前四个字符为数字,后两个字符为字母。

我一直在谷歌搜索这一点,已经找到了强制任何一种方法,但没有一种方法可以将它组合成一个输入字段,而且我似乎并不狡猾到可以自己组合它们。

谢谢。

4 个答案:

答案 0 :(得分:1)

我们在很多网站中使用此功能,尤其是手机#s

http://digitalbush.com/projects/masked-input-plugin/

答案 1 :(得分:0)

这最终是一个问题,正则表达式是一个合适的解决方案。

试试这个:

var zip = "1111 AA"
var regex = new RegExp("^[0-9]{4}\\s?[A-Z]{2}$");
regex.test(zip);

请注意,这不允许使用小写字符,并且允许没有空格的zipcode(如下所示:1111AA)。尝试使用谷歌搜索来了解如何允许或禁止这些。

答案 2 :(得分:0)

要处理您输入的特定模式,请在验证表单输入的javascript函数中尝试类似的操作:

var pattern = new RexExp( '[0-9]{4} [A-Z]{2}' );
if( inputFieldValue.search( pattern ) == -1 )
{
    // throw error condition.
}
else
{
    // The pattern matched. Continue on.
}

答案 3 :(得分:0)

您可以使用新的html5 pattern属性:

<form>
   <input name="zipcode" type="text" pattern="\d{4}\s?[A-Z]{2}" length="7" />      
   <input type="submit" />
</form>​​​​​​​​​​​​​​​​​​​​​​​​

如果不支持该属性,则回退到javascript解决方案,在提交之前使用regex检查输入字段,如下所示:

var pattern = /[0-9]{4}\s?[A-Z]{2}/;
string.match(pattern);

查看 demo fiddle