正则表达式,允许用户只输入文本,而不是字母数字

时间:2013-01-16 06:45:25

标签: jquery regex jquery-validate

我知道对你们中的许多人来说可能很容易,但我坚持下去。它杀了我的时间。当我在网上研究时,我得到了许多正则表达式来检查数字,数字和字母数字,但我无法更改代码以满足我的要求。我希望用户只输入给定文本框中的文本(实际上,人名不包含任何特殊字符或任何数字)。允许使用空格,因为用户可能想要输入名字和姓氏。

我正在尝试使用Jquery验证

jQuery(function(){
            jQuery("#userName").validate({
                expression: "if (VAL) return true; else return false;",
                message: "Please enter the Required field(Only text is allowed)"
            });
            jQuery("#userName").validate({
                expression: "if (isNaN(VAL)) return true; else return false;",
                message: "Please enter Only text"
            });
            jQuery("#userName").validate({
                expression: "if (VAL.match(/^([a-zA-Z0-9_-]+)$/)) return **false**; else return **true**;",
                message: "Please do not enter alpha numeric values"
            });

前2个验证工作正常。最后一个与我的查询有关。请帮帮我。许多人提前感谢。 :)

非常感谢大家对npinti,以下代码现在正在运作。

        <script type="text/javascript">
        reg = new RegExp('^[A-Za-z ]+$');
        /* <![CDATA[ */
        jQuery(function(){
            jQuery("#userName").validate({
                expression: "if (VAL) return true; else return false;",
                message: "Please enter the Required field(Only text is allowed)"
            });
            jQuery("#userName").validate({

                expression: "if(reg.test(VAL)) return true; else return false;",
                message: "Please enter only text"
            });

2 个答案:

答案 0 :(得分:4)

此正则表达式应符合您的要求:^[A-Za-z ]+$。这将匹配任何字母(大写和小写,由A-Za-z表示)和空格。 +表示它将匹配一个或多个重复,^$锚点指示正则表达式引擎匹配整个字符串。

如果你想要一个更强大的正则表达式,意思是一个能满足非英语字母的正则表达式,你可以使用类似的东西:^[\p{L} ]+$。这和以前一样,唯一的区别是\p{L}适合任何语言的任何字母(上下)(取自here

编辑:根据@ thg435建议,\p{L}将不起作用,因为JavaScirpt不支持此。

答案 1 :(得分:0)

我认为您应该启动正则表达式对象而不使用VAL.match。试试这个进行第三次验证:

jQuery(function(){
   First initiate regex
    reg = /[a-zA-Z0-9_-]/ 
    //or 
    reg = new RegExp('[a-zA-Z0-9_-]');

    jQuery("#userName").validate({
      expression: "if (reg.test(VAL)) return **false**; else return **true**;",
      message: "Please do not enter alpha numeric values"
    });
});