0

html text fieldアドレスを取るaの正規表現パターンをjavascriptで作成したいと思います。したがって、ユーザーに入力する[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

$(document).ready(function () {

$('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 に答える