Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 402
  • Last Modified:

JavaScript: URL Encode All Non-whitelisted Characters

I want JavaScript functions that will work just like escape() but I want all non-whitelisted charachters to be encoded.

These charachters should be whitelisted:

bcdefghijklmnopqrstuvwxyzBCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_

Because the letter "A" is not whitelisted, it should be URL encoded.

For example:
A test, 123-456

Should become:
%41%20test%2C%20123%2D456%20
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title>Demo</title>
</head>
<body>

<script type="text/javascript">
//<![CDATA[

var x = 'A test, 123-456';

alert(escapeNonWhitelisted(x));

function escapeNonWhitelisted(str) {
 return escape(str);
}

//]]>
</script>

</body>
</html>

Open in new window

0
hankknight
Asked:
hankknight
1 Solution
 
leakim971PluritechnicianCommented:
Test page : http://jsfiddle.net/mYJCx/

function escapeNonWhitelisted(str) {
    var escape char = "%";
    var whitelist = "bcdefghijklmnopqrstuvwxyzBCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_";
    return str.replace(/(.)/g,function($1) { return whitelist.indexOf($1)<0?escape char+$1.charCodeAt(0).toString(16):$1; });
}

Open in new window

0

Featured Post

Become an Android App Developer

Ready to kick start your career in 2018? Learn how to build an Android app in January’s Course of the Month and open the door to new opportunities.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now