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: 2786
  • Last Modified:

javascript, escape the backslash

i am using a javascript function found here in ee.

it works nice to retrieve the querystring variables and later write them on the html page

i ran into a problem, and that is, when a passed variables contains a backslash such as:

p_old_path=\\PPT.DFT\Files\Global\My_Directory

the variables is written as

\PPT.DFTFilesGlobalMy_Directory  

how can the function be modified so it escapes the backslashes that are contained on the passed querystring variables?


Thank you.
<script language="javascript">
    p_name= "";
    p_id= "";
    p_old_path= "";
    p_new_path= "";
    p_dir_owner= "";
    p_primary_stew= "";
    p_bckup_stew= "";
    p_full_access= "";
    p_read_access= "";
    p_description= "";
    p_other_info= "";
// Get names
var queryString = window.location.href.substring((window.location.href.indexOf('?') + 1));
var array1 = queryString.split('&'); // Each array element is in format "fieldname=value"
for(var i = 0; i < array1.length; i++)
{
   var tempArray = array1[i].split('='); // Separate fieldname and value
   eval(tempArray[0] + " = \"" + tempArray[1] + "\"");
}
</script>

Open in new window

0
itortu
Asked:
itortu
  • 2
  • 2
1 Solution
 
hieloCommented:
try:
 eval(tempArray[0] + " = \"" + tempArray[1].replace(/[\\]/g,'\\') + "\"");

Open in new window

0
 
itortuAuthor Commented:
i'm still not able to see the "\" written on the page :-(
0
 
itortuAuthor Commented:
i am pasting the contents of my page may be that helps?
<script language="javascript">
		p_name= "";
    p_id= "";
    p_old_path= "";
    p_new_path= "";
    p_dir_owner= "";
    p_primary_stew= "";
    p_bckup_stew= "";
    p_full_access= "";
    p_read_access= "";
    p_description= "";
    p_other_info= "";
		// Get names
		var queryString = window.location.href.substring((window.location.href.indexOf('?') + 1));
		var array1 = queryString.split('&'); // Each array element is in format "fieldname=value"
		for(var i = 0; i < array1.length; i++)
		{
 			var tempArray = array1[i].split('='); // Separate fieldname and value
 			eval(tempArray[0] + " = \"" + tempArray[1] + "\"");
 			
		}
		
	</script>
	<script language="javascript">
	function urldecode( str ) {
    // http://kevin.vanzonneveld.net
    // +   original by: Philip Peterson
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // *     example 1: urldecode('Kevin+van+Zonneveld%21');
    // *     returns 1: 'Kevin van Zonneveld!'
    
    var ret = str;
       
    ret = ret.replace(/\+/g, '%20');
    ret = ret.replace(/\\+/g, '\\');
    
    
    ret = decodeURIComponent(ret);
    ret = ret.toString();
    return ret;
		}			
  </script>		
  		<table border=0 width=600>
			<tr>
				<td width=300>
					<table>
						<tr><td class='label'>Name of Person Requesting Directory:</td></tr>
						<tr><td class='label'>0#XXX:</td></tr>
						<tr><td class='label'>Current Directory Path:</td></tr>
						<tr><td class='label'>New Path of Directory:</td></tr>
						<tr><td class='label'>Directory Owner:</td></tr>
						<tr><td class='label'>Primary Directory Steward:</td></tr>
						<tr><td class='label'>Directory Backup Steward:</td></tr>
						<tr><td class='label'>Full Access:</td></tr>
						<tr><td class='label'>Read Only Access Needed:</td></tr>
						<tr><td class='label'>Directory description:</td></tr>
						<tr><td class='label'>Other Information:</td></tr>
					</table>	
				</td>
				<td width=300>
					<table>
			   	   <tr><td class='label'><script language="javascript"> document.write(urldecode(p_name));</script>&nbsp;</td></tr>
             <tr><td class='label'><script language="javascript"> document.write(urldecode(p_id));</script> &nbsp;</td></tr>
             <tr><td class='label'><script language="javascript"> document.write(urldecode(p_old_path));</script> &nbsp;</td></tr>
             <tr><td class='label'><script language="javascript"> document.write(urldecode(p_new_path));</script> &nbsp;</td></tr>
             <tr><td class='label'><script language="javascript"> document.write(urldecode(p_dir_owner));</script> &nbsp;</td></tr>
						 <tr><td class='label'><script language="javascript"> document.write(urldecode(p_primary_stew));</script> &nbsp;</td></tr>
						 <tr><td class='label'><script language="javascript"> document.write(urldecode(p_bckup_stew));</script> &nbsp;</td></tr>
						 <tr><td class='label'><script language="javascript"> document.write(urldecode(p_full_access));</script> &nbsp;</td></tr>
						 <tr><td class='label'><script language="javascript"> document.write(urldecode(p_read_access));</script> &nbsp;</td></tr>
						 <tr><td class='label'><script language="javascript"> document.write(urldecode(p_description));</script> &nbsp;</td></tr>
						 <tr><td class='label'><script language="javascript"> document.write(urldecode(p_other_info));</script> &nbsp;</td></tr>
				  </table>
        </td>
      </tr>	       
		</table>
  
  

Open in new window

0
 
hieloCommented:
use this:

eval(tempArray[0] + " = \"" + tempArray[1].replace(/[\\]/g,'&#92;') + "\"");

Open in new window

0

Featured Post

Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

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