Expand my Community achievements bar.

Don’t miss the AEM Skill Exchange in SF on Nov 14—hear from industry leaders, learn best practices, and enhance your AEM strategy with practical tips.
SOLVED

What is incorrect in this function ?

Avatar

Level 2

I have this error:

TypeError: s.replace is not a function

68:Doc:Init

This is the code that generates the error:

function EL(s)

{

var sir = "";

sir = s.replace(/[&]/g,"&amp;");                            <<<---------------------- this is the error line

sir = sir.replace(/["]/g,"&quot;");

sir = sir.replace(/[“]/g,"&quot;");

sir = sir.replace(/[”]/g,"&quot;");

sir = sir.replace(/[']/g,"&apos;");

  

return sir;

}

I am a newbie in javascript and adobe livecycle designer...what is causing the error ? What should i do

1 Accepted Solution

Avatar

Correct answer by
Level 10

Hi there,

everything seems syntactically correct, so I would say make sure that the parameter 's' is a string...

Hope this will help

View solution in original post

6 Replies

Avatar

Correct answer by
Level 10

Hi there,

everything seems syntactically correct, so I would say make sure that the parameter 's' is a string...

Hope this will help

Avatar

Employee Advisor

Please try updating script to below:

var sir = "";

sir=this.rawValue;

sir = sir.replace(/[&]/g,"&amp;");                          

sir = sir.replace(/["]/g,"&quot;");

sir = sir.replace(/[“]/g,"&quot;");

sir = sir.replace(/[”]/g,"&quot;");

sir = sir.replace(/[']/g,"&apos;");

Thanks,

Mayank 

Avatar

Level 10

This seem to be working fine for me...

ensure that this.rawValue is in fact returning the value desired...

use app.alert(this.rawValue);

Avatar

Employee Advisor

I have updated the script that was posted in the question originally, mine is working one

Avatar

Level 10

Hi,

I think Magus069 is correct, s will either be null or some other object that doesn't have a replace method, such as a number.

Bruce

Avatar

Level 2

Thanks i solved it, i have to call the .toString() method on the variable