2010-09-06 57 views
1

我正在制作一个分类广告网站,用户通过表单(如Craigslist)提交广告。许多用户使用大写字母来书写广告的标题或说明以获得更多关注,但我不想影响网站的整体外观。避免使用jQuery进行大写输入验证

我想停止这一点,但仍允许在连续使用不到三个大写字母缩写词(例如允许“位于美国”,但不是“看,超值优惠”)

我是一个完整的Validate和RegEx新手(只有一个周末),所以我需要你的帮助专家。

我用这个方法:

$.validator.addMethod("noCaps", function(value, element) { 
    return this.optional(element) || /[A-Z]{4}/.test(value); 
}, "You are not permitted to input more than three uppercase letters in a row!"); 

但我发现了完全相反的结果。我如何否定此RegEx以达到所需的规则?

如果有人更好地了解如何做到这一点,也欢迎您!

谢谢!

See/Edit Example Code

回答

2

你只需在它前面加上一个否定(!),像这样:

$.validator.addMethod("noCaps", function(value, element) { 
    return this.optional(element) || !/[A-Z]{4}/.test(value); 
}, "You are not permitted to input more than three uppercase letters in a row!"); 

You can give it a try here

+0

不错!谢谢!!! =) – 2010-09-06 21:03:12

+0

@ swordf1zh - 欢迎来到SO! :)一定要么接受答案,要么让回答者知道问题是什么:) – 2010-09-06 21:06:37

+0

谢谢,它正是我需要的!...我喜欢SO .. – 2010-09-06 21:19:31