17
17
// Regular Expressions for parsing tags and attributes
18
18
var START_TAG_REGEXP = / ^ < \s * ( [ \w : ] + ) ( (?: \s + \w + (?: \s * = \s * (?: (?: " [ ^ " ] * " ) | (?: ' [ ^ ' ] * ' ) | [ ^ > \s ] + ) ) ? ) * ) \s * ( \/ ? ) \s * > / ,
19
19
END_TAG_REGEXP = / ^ < \s * \/ \s * ( [ \w : ] + ) [ ^ > ] * > / ,
20
- ATTR_REGEXP = / ( \w + ) (?: \s * = \s * (?: (?: " ( (?: \\ . | [ ^ " ] ) * ) " ) | (?: ' ( (?: \\ . | [ ^ ' ] ) * ) ' ) | ( [ ^ > \s ] + ) ) ) ? / g,
20
+ ATTR_REGEXP = / ( \w + ) (?: \s * = \s * (?: (?: " ( (?: [ ^ " ] ) * ) " ) | (?: ' ( (?: [ ^ ' ] ) * ) ' ) | ( [ ^ > \s ] + ) ) ) ? / g,
21
21
BEGIN_TAG_REGEXP = / ^ < / ,
22
22
BEGING_END_TAGE_REGEXP = / ^ < \s * \/ / ,
23
23
COMMENT_REGEXP = / < ! - - ( .* ?) - - > / g,
@@ -26,32 +26,32 @@ var START_TAG_REGEXP = /^<\s*([\w:]+)((?:\s+\w+(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']
26
26
NON_ALPHANUMERIC_REGEXP = / ( [ ^ \# - ~ | | ! ] ) / g; // Match everything outside of normal chars and " (quote character)
27
27
28
28
// Empty Elements - HTML 4.01
29
- var emptyElements = makeMap ( "area,base,basefont, br,col,hr,img,input,isindex,link,param " ) ;
29
+ var emptyElements = makeMap ( "area,br,col,hr,img" ) ;
30
30
31
31
// Block Elements - HTML 4.01
32
- var blockElements = makeMap ( "address,blockquote,button, center,dd,del,dir,div,dl,dt,fieldset ," +
33
- "form, hr,ins,isindex ,li,map,menu,ol,p,pre,script,table,tbody,td,tfoot,th,thead,tr,ul" ) ;
32
+ var blockElements = makeMap ( "address,blockquote,center,dd,del,dir,div,dl,dt," +
33
+ "hr,ins,li,map,menu,ol,p,pre,script,table,tbody,td,tfoot,th,thead,tr,ul" ) ;
34
34
35
35
// Inline Elements - HTML 4.01
36
- var inlineElements = makeMap ( "a,abbr,acronym,b,basefont, bdo,big,br,button ,cite,code,del,dfn,em,font,i,img," +
37
- "input, ins,kbd,label,map,q,s,samp,select, small,span,strike,strong,sub,sup,textarea ,tt,u,var" ) ;
36
+ var inlineElements = makeMap ( "a,abbr,acronym,b,bdo,big,br,cite,code,del,dfn,em,font,i,img," +
37
+ "ins,kbd,label,map,q,s,samp,small,span,strike,strong,sub,sup,tt,u,var" ) ;
38
38
// Elements that you can, intentionally, leave open
39
39
// (and which close themselves)
40
- var closeSelfElements = makeMap ( "colgroup,dd,dt,li,options, p,td,tfoot,th,thead,tr" ) ;
40
+ var closeSelfElements = makeMap ( "colgroup,dd,dt,li,p,td,tfoot,th,thead,tr" ) ;
41
41
// Special Elements (can contain anything)
42
42
var specialElements = makeMap ( "script,style" ) ;
43
43
var validElements = extend ( { } , emptyElements , blockElements , inlineElements , closeSelfElements ) ;
44
44
45
45
//see: http://www.w3.org/TR/html4/index/attributes.html
46
46
//Attributes that have their values filled in disabled="disabled"
47
- var fillAttrs = makeMap ( "checked, compact,declare,defer,disabled, ismap,multiple, nohref,noresize,noshade, nowrap,readonly,selected " ) ;
47
+ var fillAttrs = makeMap ( "compact,ismap,nohref,nowrap" ) ;
48
48
//Attributes that have href and hence need to be sanitized
49
49
var uriAttrs = makeMap ( "background,href,longdesc,src,usemap" ) ;
50
50
var validAttrs = extend ( { } , fillAttrs , uriAttrs , makeMap (
51
51
'abbr,align,alt,axis,bgcolor,border,cellpadding,cellspacing,class,clear,' +
52
- 'color,cols,colspan,coords,dir,face,for, headers,height,hreflang,hspace,id ,' +
53
- 'label, lang,language,maxlength,method,name,prompt ,rel,rev,rows,rowspan,rules,' +
54
- 'scope,scrolling,shape,size, span,start,summary,tabindex ,target,title,type,' +
52
+ 'color,cols,colspan,coords,dir,face,headers,height,hreflang,hspace,' +
53
+ 'lang,language,rel,rev,rows,rowspan,rules,' +
54
+ 'scope,scrolling,shape,span,start,summary,target,title,type,' +
55
55
'valign,value,vspace,width' ) ) ;
56
56
57
57
/**
@@ -249,12 +249,12 @@ function htmlSanitizeWriter(buf){
249
249
if ( ! ignore && specialElements [ tag ] ) {
250
250
ignore = tag ;
251
251
}
252
- if ( ! ignore && validElements [ tag ] ) {
252
+ if ( ! ignore && validElements [ tag ] == true ) {
253
253
out ( '<' ) ;
254
254
out ( tag ) ;
255
255
foreach ( attrs , function ( value , key ) {
256
256
var lkey = lowercase ( key ) ;
257
- if ( validAttrs [ lkey ] && ( uriAttrs [ lkey ] !== true || value . match ( URI_REGEXP ) ) ) {
257
+ if ( validAttrs [ lkey ] == true && ( uriAttrs [ lkey ] !== true || value . match ( URI_REGEXP ) ) ) {
258
258
out ( ' ' ) ;
259
259
out ( key ) ;
260
260
out ( '="' ) ;
@@ -267,7 +267,7 @@ function htmlSanitizeWriter(buf){
267
267
} ,
268
268
end : function ( tag ) {
269
269
tag = lowercase ( tag ) ;
270
- if ( ! ignore && validElements [ tag ] ) {
270
+ if ( ! ignore && validElements [ tag ] == true ) {
271
271
out ( '</' ) ;
272
272
out ( tag ) ;
273
273
out ( '>' ) ;
0 commit comments