jQuery Live Regex Check

时间:2012-12-06 15:05:38

标签: jquery regex

所以,我有一个默认值为“www.mysite.com/users/”的输入框,此后用户应该可以为自己定义一个简短的URL,例如:“mike”。

现在,我想只允许az和AZ作为短网址,我想现场检查用户输入并阻止他们使用其他字符作为&amp;%!“£...,这是我的代码:< / p>

<input type="text" id="short_url" value="www.mysite.com/users/" />
<script>
    ('#short_url').on('keypress', function(){
                var short_url = $(this).val();
                if(short_url.substr(0, 21) != 'www.mysite.com/users/'){
                    $(this).val('www.mysite.com/users/');
                }else{
                    // Only allow a-z
                        short_url = short_url.substr(21);
                        var RegEx = /^[a-z0-9]$/;
                        if(!RegEx.test(short_url)) {
                            if(short_url != '')
                            return false;
                        }
                }
            });
</script>

我在上面的代码中尝试的是,不要让用户清除我的site.com,因此他必须在默认值之后添加他的短网址,并且只允许输入RegEx,但它不起作用。我该如何实现呢?

另一件事是,我也想在短网址中允许点,但只需1点!

提前致谢

2 个答案:

答案 0 :(得分:1)

由于您的基本网址永远不会改变...为什么不在输入字段之前创建静态文本。它将大大简化您的代码。

<span>www.mysite.com/users/</span>
<input id="short_url" type="text" />​

然后一个小jQuery来处理验证

(function(){

    var shortUrlRegexp = /^[a-zA-Z]*(\.{1}[a-zA-Z]*)?$/;

    $("#short_url").on("keyup", function(){

        var text = $(this).val();

        var isMatch = shortUrlRegexp.test(text);

        $(this).toggleClass("invalid", !isMatch);

    });

}());​

这是live demo

答案 1 :(得分:0)

这将允许字母数字+一.。必须以字母数字字符

开头和结尾
^[a-z0-9]+\.?[a-z0-9]+$