2

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

现在,我只想允许 az 和 AZ 用于短 URL,我想实时检查用户输入并防止他们使用其他字符作为 &%!"£...,这是我的代码:

<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,所以他必须在默认值之后添加他的短网址,并且只允许输入正则表达式,但它不起作用。我应该如何实现这个?

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

提前致谢

4

2 回答 2

1

既然你的基本 URL 永远不会改变......为什么不在你的输入字段之前制作那个静态文本。它将大大简化您的代码。

<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);

    });

}());​

这是一个现场演示

于 2012-12-06T15:29:32.793 回答
0

这将允许字母数字 + 一.。必须以字母数字字符开头和结尾

^[a-z0-9]+\.?[a-z0-9]+$
于 2012-12-06T15:17:35.560 回答