Javascript 如何允许用户只输入数字和字母?

Javascript 如何允许用户只输入数字和字母?,javascript,angularjs,Javascript,Angularjs,我知道使用regex,但有可能不使用它吗?这是模式表单中的我的文本字段用户名。我想让用户只输入数字和字母,不包括空格和特殊字符 <div class="form-group has-feedback" ng-class="addUser.username.$valid ? 'has-success' : 'has-error';"> <label class="control-label" for="username">Username</label>

我知道使用regex,但有可能不使用它吗?这是模式表单中的我的文本字段用户名。我想让用户只输入数字和字母,不包括空格和特殊字符

<div class="form-group has-feedback" ng-class="addUser.username.$valid ? 'has-success' : 'has-error';">
 <label class="control-label" for="username">Username</label>
  <input class="form-control" name="username" ng-model="user.username" required>
   <span class="glyphicon form-control-feedback" ng-class="addUser.username.$valid ? 'glyphicon-ok' : 'glyphicon-remove';"></span>
</div>
如果有人能帮助我,我将不胜感激。

像这样做吧

$(function() {
    $('#username').on( 'keydown', function( e ) {
        if( !$( this ).data( "value" ) )
             $( this ).data( "value", this.value );
    });
    $('#username').on( 'keyup', function( e ) {
        if (!/^[_0-9a-z]*$/i.test(this.value))
            this.value = $( this ).data( "value" );
        else
            $( this ).data( "value", null );
    });
});
请将
id=“username”
属性也添加到您的文本字段中

编辑


如果您有多个用户名字段,请使用
class=“username”
而不是
id=“username”
,并将Javascript更改为
$('.username')
。因此它可以在多个文本字段上工作。

我不知道AngularJS,但HTML5有一个名为“模式”的属性。阅读更多关于我试图包含此模式的信息=“[a-zA-Z0-9]”。但它似乎不符合我的要求。我错过了什么@InukaI在答案中加入了我的想法。请看一看。如果我只想在html中设置模式而不涉及控制器,这可能吗?只是在这个链接链接?正如我所说,我对AngularJS一无所知,但这是Javascript,应该可以与您的代码一起使用。另外,如果您像现在这样从ajax中注入一个文本字段,只要您将其放在主JS文件中,这段代码就可以工作。请备份该项目并试一试。:)@苏,我很高兴我帮助了你。如果你愿意,请投票选出答案。:)我有很多,以备将来需要。:)
$(function() {
    $('#username').on( 'keydown', function( e ) {
        if( !$( this ).data( "value" ) )
             $( this ).data( "value", this.value );
    });
    $('#username').on( 'keyup', function( e ) {
        if (!/^[_0-9a-z]*$/i.test(this.value))
            this.value = $( this ).data( "value" );
        else
            $( this ).data( "value", null );
    });
});