| 4 |
lars |
1 |
( function() {
|
|
|
2 |
|
|
|
3 |
function stripHtml( value ) {
|
|
|
4 |
|
|
|
5 |
// Remove html tags and space chars
|
|
|
6 |
return value.replace( /<.[^<>]*?>/g, " " ).replace( / | /gi, " " )
|
|
|
7 |
|
|
|
8 |
// Remove punctuation
|
|
|
9 |
.replace( /[.(),;:!?%#$'\"_+=\/\-“”’]*/g, "" );
|
|
|
10 |
}
|
|
|
11 |
|
|
|
12 |
$.validator.addMethod( "maxWords", function( value, element, params ) {
|
|
|
13 |
return this.optional( element ) || stripHtml( value ).match( /\b\w+\b/g ).length <= params;
|
|
|
14 |
}, $.validator.format( "Please enter {0} words or less." ) );
|
|
|
15 |
|
|
|
16 |
$.validator.addMethod( "minWords", function( value, element, params ) {
|
|
|
17 |
return this.optional( element ) || stripHtml( value ).match( /\b\w+\b/g ).length >= params;
|
|
|
18 |
}, $.validator.format( "Please enter at least {0} words." ) );
|
|
|
19 |
|
|
|
20 |
$.validator.addMethod( "rangeWords", function( value, element, params ) {
|
|
|
21 |
var valueStripped = stripHtml( value ),
|
|
|
22 |
regex = /\b\w+\b/g;
|
|
|
23 |
return this.optional( element ) || valueStripped.match( regex ).length >= params[ 0 ] && valueStripped.match( regex ).length <= params[ 1 ];
|
|
|
24 |
}, $.validator.format( "Please enter between {0} and {1} words." ) );
|
|
|
25 |
|
|
|
26 |
}() );
|