我知道对你们中的许多人来说可能很容易,但我坚持下去。它杀了我的时间。当我在网上研究时,我得到了许多正则表达式来检查数字,数字和字母数字,但我无法更改代码以满足我的要求。我希望用户只输入给定文本框中的文本(实际上,人名不包含任何特殊字符或任何数字)。允许使用空格,因为用户可能想要输入名字和姓氏。
我正在尝试使用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"
});
答案 0 :(得分:4)
此正则表达式应符合您的要求:^[A-Za-z ]+$
。这将匹配任何字母(大写和小写,由A-Z
和a-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"
});
});