0

我想在 javascript 中为一个html text field需要地址的 regex 模式创建一个。所以我只希望用户输入[a-z,A-Z,0-9]并且只有这些符号[,#-.]我还想阻止用户发送空字符串并且最大字符数小于 100。

这是html <input>

<input type="text" id="addy" maxlength="100"/>

我是 javascript 新手,所以我不知道如何创建一个能够遵守正则表达式模式的函数。

谢谢

编辑

根据我的建议,kolink我尝试了这个:

 <input type="text" style="width:285px" placeholder="Enter A Precise Address" name="address0" id="address"
     pattern="[ a-zA-Z0-9,#.-]+" maxlength="100" title="Standard address notation only"/>

这现在仅在<select>未选择另一个时才有效。否则它不会拾取pattern属性。然而,完全相同的代码在 jsfiddle 上按预期工作:http: //jsfiddle.net/peD3t/7/但不在浏览器中。这是 pastebin 中的代码:http: //pastebin.com/qQGJ4EK5

谢谢

4

2 回答 2

8

HTML5 为您提供了pattern属性,它允许您要求某种模式。在这种情况下,你会想要pattern="[a-zA-Z0-9,#.-]+"

旧浏览器不支持这一点并不重要,因为您应该始终在服务器端进行验证。

于 2012-12-28T21:49:20.930 回答
0

$(文档).ready(函数 () {

$('input').keyup(function() {
    var $th = $(this);
    $th.val( $th.val().replace(/[^a-zA-Z0-9,#.-]/g, function(str) { return ''; } ) );
});

});

这将起作用。

于 2013-08-09T10:48:01.530 回答