1

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

我正在尝试使用 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"
            });

1st 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"
            });
4

2 回答 2

4

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

如果你想要一个更健壮的正则表达式,意味着一个可以满足非英文字母的,你可以使用这样的东西:^[\p{L} ]+$. 这和以前一样,唯一的区别是\p{L}迎合任何语言的任何字母(上下)(取自此处

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

于 2013-01-16T06:53:02.407 回答
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"
    });
});
于 2013-01-16T06:53:30.683 回答