0

我有这个代码:

$(document).ready(function(){
    $("input").focus(function(){
        $(this).css('outline-color','#559FFF');
        $(this).blur(function(){
            $(this).css("outline-color","#FF0000");
        });
    });
    $("input").click(function(){
     var value = $(this).val(function(){
         $(this).html("");
      });
    });
    $(".awesome").click(function(){
        var toStore = $("input[name=name]").val();
        if((toStore===/[a-zA-Z]/)===true){
        $("#contain").children().fadeOut(1000);
        $("#contain").delay(5000).queue(function(){
            $("#contain").append("<p>welcome : " + toStore + " </p>");
    });
        }else{
            alert("You Must Put a Valid Name");
        }
});
});

我希望我的代码测试并捕获我输入的值,如果该值是 az 之间的字符,包括大写,两个单词之间有空格,例如:“FirstName LastName”,如果它可以处理为:

$("#contain").children().fadeOut(1000);
        $("#contain").delay(5000).queue(function(){
            $("#contain").append("<p>welcome : " + toStore + " </p>");
    });

否则提醒用户他必须输入有效字符。

4

2 回答 2

2

我认为这个正则表达式应该可以工作:

if (/^[A-Za-z]+ [A-Za-z]+$/.test(toStore)) {

}

并且应该代替你的if((toStore===/[a-zA-Z]/)===true){

演示:http: //jsfiddle.net/tDVWk/

这将检查输入是否遵循以下内容:

  • 以 1 个或多个字母字符开头(可以是大写或小写)
  • 在上一组字符之后包含一个空格
  • 以 1 个或多个字母字符结尾(可以是大写或小写)

如果您想更严格并要求每个名称以大写字母开头,其余为小写,您可以使用:

if (/^[A-Z][a-z]? [A-Z][a-z]?$/.test(toStore)) {

}

但这并不理想,因为名称非常不同,很容易成为“McLovin”之类的东西……第二个例子肯定会失败。希望我的第一个例子能完成你所需要的。

当然,总是有争论说你不应该限制这样的事情。如果他们的名字不仅仅是第一个和最后一个怎么办?如果他们有一个后缀,比如“III”(或者实际上是“3”),表明他们是同名的家族中的第三个呢?如果人们想要包括他们的中间名(故意或意外)怎么办?对每个名称使用两个文本框可能更有意义,使用户更清楚。这样,您所要做的就是验证每个都已填写(并且可能只有字母字符)。再说一次,我不确定你的要求是什么以及你已经拥有的这个文本框是什么:)

于 2013-04-05T18:36:06.360 回答
0

像这样的东西?您需要在需要的地方添加代码。

<script>
 function validateInput(obj, e){
    var code;
    if (!e) var e = window.event;
    if (e.keyCode) code = e.keyCode;
    else if (e.which) code = e.which;
    var character = String.fromCharCode(code);
    var AllowRegex  = /^[\ba-zA-Z,\s-\f\n\r\t\v]$/;
    if (AllowRegex.test(character)){ 
        return true;
    }
    else{
    alert('!');
        return false;
    }
    }
</script>

<input id="input1" onkeydown=" return validateInput(this,event) "/>
于 2013-04-05T18:47:50.153 回答