diff --git a/src/dom/parse.js b/src/dom/parse.js index f7868f94..b2f28c86 100644 --- a/src/dom/parse.js +++ b/src/dom/parse.js @@ -372,7 +372,7 @@ wysihtml5.dom.parse = (function() { // ------------ attribute checks ------------ \\ var attributeCheckMethods = { url: (function() { - var REG_EXP = /^https?:\/\//i; + var REG_EXP = /^(https?:)?\/\//i; return function(attributeValue) { if (!attributeValue || !attributeValue.match(REG_EXP)) { return null; @@ -384,7 +384,7 @@ wysihtml5.dom.parse = (function() { })(), src: (function() { - var REG_EXP = /^(\/|https?:\/\/)/i; + var REG_EXP = /^(\/\/?|https?:\/\/)/i; return function(attributeValue) { if (!attributeValue || !attributeValue.match(REG_EXP)) { return null; @@ -396,7 +396,7 @@ wysihtml5.dom.parse = (function() { })(), href: (function() { - var REG_EXP = /^(\/|https?:\/\/|mailto:)/i; + var REG_EXP = /^(\/\/?|https?:\/\/|mailto:)/i; return function(attributeValue) { if (!attributeValue || !attributeValue.match(REG_EXP)) { return null; diff --git a/test/dom/parse_test.js b/test/dom/parse_test.js index fbce57e7..03059ac3 100644 --- a/test/dom/parse_test.js +++ b/test/dom/parse_test.js @@ -121,11 +121,15 @@ if (wysihtml5.browser.supported()) { this.equal( this.sanitize( '' + + '' + '' + '', rules ), - '' + '' + + '' + + '' + + '' ); }); @@ -142,12 +146,14 @@ if (wysihtml5.browser.supported()) { this.sanitize( '' + '' + + '' + '' + '', rules ), '' + '' + + '' + '' + '' ); @@ -167,6 +173,7 @@ if (wysihtml5.browser.supported()) { '' + '' + '' + + '' + '' + '' + '', @@ -175,6 +182,7 @@ if (wysihtml5.browser.supported()) { '' + '' + '' + + '' + '' + '' + ''