投稿する前に SO を検索しましたが、自分に合った答えが見つかりませんでした。
以下は、ユーザー名をテストするための簡単な JS スクリプトです。
ユーザー名の長さの検証は正常に機能しますが、文字の検証は機能しません。
許可されていないすべての文字 ($%;[+) など) はパスしますが、エラーを返す必要があります。
<script type="text/javascript">
$(document).ready(function() {
$("#username").change(function() {
var username = $("#username").val();
var msgbox = $("#status");
var usernameRegex = /^[a-zA-Z0-9][a-zA-Z0-9\._-]$i/
if ((username.length >= 4 && username.length <= 20) &&
(usernameRegex.test(username.value) == false)) {
$.ajax({
type: "POST",
url: "username.php",
data: "username=" + username,
success: function(msg) {
if (msg == 'OK') {
msgbox.html('<img src="ok.png">');
} else {
msgbox.html(msg);
}
}
});
} else {
$("#status").html('<img src="no.png">Try again');
}
});
});
</script>
私は何が欠けていますか?