我目前正在开展一个项目,我需要使用邮政编码从数据库中获取街道/城市详细信息。荷兰邮政编码使用“1111 AA”格式,我希望在单个输入字段中输入,同时强制前四个字符为数字,后两个字符为字母。
我一直在谷歌搜索这一点,已经找到了强制任何一种方法,但没有一种方法可以将它组合成一个输入字段,而且我似乎并不狡猾到可以自己组合它们。
谢谢。
答案 0 :(得分:1)
我们在很多网站中使用此功能,尤其是手机#s
答案 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 。