﻿//MSG扩展
jQuery.extend(jQuery.validator.messages, {
        required: "不允许为空",
		remote: "你的输入的数据已经存在，请尝试其它数据",
		email: "请输入正确格式的电子邮件",
		url: "请输入合法的网址",
		date: "请输入合法的日期",
		dateISO: "请输入合法的日期 (ISO).",
		number: "请输入合法的数字",
		digits: "只能输入整数",
		creditcard: "请输入合法的信用卡号",
		equalTo: "请再次输入相同的值",
		accept: "请输入拥有合法后缀名的字符串",
		maxlength: jQuery.format("长度小于必须或者等于 {0} 的字符串"),
		minlength: jQuery.format("长度必须大于或者等于 {0} "),
		rangelength: jQuery.format("长度须介于 {0} 和 {1} 之间的字符串"),
		range: jQuery.format("请输入一个介于 {0} 和 {1} 之间的值"),
		max: jQuery.format("请输入一个最大为 {0} 的值"),
		min: jQuery.format("请输入一个最小为 {0} 的值")
});
//方法扩展
jQuery.validator.addMethod("maxWords", function(value, element, params) { 
    return this.optional(element) || value.match(/\b\w+\b/g).length < params; 
}, "Please enter {0} words or less."); 
 
jQuery.validator.addMethod("minWords", function(value, element, params) { 
    return this.optional(element) || value.match(/\b\w+\b/g).length >= params; 
}, "Please enter at least {0} words."); 
 
jQuery.validator.addMethod("rangeWords", function(value, element, params) { 
    return this.optional(element) || value.match(/\b\w+\b/g).length >= params[0] && value.match(/bw+b/g).length < params[1]; 
}, "Please enter between {0} and {1} words.");

jQuery.validator.addMethod("alphanumeric", function(value, element) {
	return this.optional(element) || /^\w+$/i.test(value);
}, "Letters, numbers, spaces or underscores only please");  

jQuery.validator.addMethod("nowhitespace", function(value, element) {
	return this.optional(element) || /^\S+$/i.test(value);
}, "No white space please"); 

// TODO check if value starts with <, otherwise don't try stripping anything
jQuery.validator.addMethod("strippedminlength", function(value, element, param) {
	return jQuery(value).text().length >= param;
}, jQuery.format("Please enter at least {0} characters"));

jQuery.validator.addMethod("lettersonly", function(value,element) {
	return this.optional(element) || /^[a-z]+$/i.test(value);
}, "只允许输入英文字母");

jQuery.validator.addMethod("startwidth", function(value, element) {
	var defaultValue=element.defaultValue;
		defaultValue=defaultValue.toLowerCase();
	var defaultLength=defaultValue.length;
		value=value.toLowerCase();
	return value.length > defaultLength && value.substring(0,defaultLength)==defaultValue;
},"必须以默认值开头，且不能等于默认值");

jQuery.validator.addMethod("time", function(value,element) {
	return this.optional(element) || /\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}/i.test(value);
}, "格式错误，正确的格式应该如：2008-05-21 12:04:04");

jQuery.validator.addMethod("lettersandnumbers", function(value,element) {
	return this.optional(element) || /^[a-zA-Z0-9]+$/i.test(value);
}, "只允许输入英文字母、数字");

jQuery.validator.addMethod("namespace", function(value,element) {
	return this.optional(element) || /^[a-zA-Z0-9-.]+$/i.test(value);
}, "只允许输入英文字母、数字,和点");

jQuery.validator.addMethod("chinese", function(value,element) {
	return this.optional(element) || /^[\u0391-\uFFE5]+$/i.test(value);
}, "只允许输入中文");

jQuery.validator.addMethod("int", function(value,element) {
	return this.optional(element) || /^[-\+]?\d+$/i.test(value);
}, "只允许输入整数");

jQuery.validator.addMethod("fieldname", function(value,element) {
	return this.optional(element) || /^[a-zA-Z]\w{2,31}$/i.test(value);
}, "只允许英文字母、数字以及下划线，且必须以英文字母开头，3~32位");

jQuery.validator.addMethod("username", function(value,element) {
	return this.optional(element) || /^[a-zA-Z]\w{5,31}$/i.test(value);
}, "只允许英文字母、数字以及下划线，且必须以英文字母开头，6~32位");

jQuery.validator.addMethod("letterswithbasicpunc", function(value, element) {
	return this.optional(element) || /^[a-z-.,()'\"\s]+$/i.test(value);
}, "Letters or punctuation only please");  



