Ashima
Ashima

Reputation: 4824

How to find out if a given string is HTML Escaped or not?

Is there any method to find out if the given string is HTML Escaped or not?

Consider the following javascript code:

<script>
var str="hello";
var str_esc=escape(str);

document.write(isHTMLEscaped(str)) // *Should print False*

document.write(isHTMLEscaped(str_esc)); // *Should print True*

</script>

Is there any method equivalent to isHTMLEscaped in the above case?

Upvotes: 2

Views: 4312

Answers (2)

Joe
Joe

Reputation: 1535

I found that using

escape(unescape(str))

will always provide an escaped string. And the unescape string will do nothing unless the string itself contains escaped expressions.

Note: should have used encodeURI(decodeURI(str)) instead as escape is now depreciated.

Upvotes: 6

Denys S&#233;guret
Denys S&#233;guret

Reputation: 382304

As "hello"==escape("hello"), no, you can't at all guess if escaping was applied.

If you want to know if it's probable that the string has been escaped, then you might test

var wasProbablyEscaped = /%\d\d/.test(str);
var wasProbablyNotEscaped = !wasProbablyEscaped && /%\d\d/.test(escape(str));

as escaping adds % followed by two digits when something has to be escaped. But you can't be totally sure as some strings don't change when you escape them.

In your case, I'd probably advise you not to escape if wasProbablyEscaped is true.

Upvotes: 1

Related Questions